Import the libraries¶

In [0]:
import warnings
import numpy as np                                            #Exploratory Data Analysis
import pyspark.pandas as ps
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.graph_objects as go
from plotly.offline import iplot
from random import random
from pyspark.ml import Pipeline                                #Modeling
from pyspark.ml.regression import LinearRegression, DecisionTreeRegressor, RandomForestRegressor, GBTRegressor
from pyspark.ml.feature import VectorAssembler
from pyspark.ml.evaluation import RegressionEvaluator
import mlflow                                                  #Deployment
import mlflow.sklearn
import mlflow.azureml
import azureml
from azureml.core import Workspace
from azureml.core.authentication import InteractiveLoginAuthentication
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

Mount the Azure Storage¶

In [0]:
dbutils.fs.mount(
  source = "wasbs://dataset@pricedatastorage.blob.core.windows.net",
  mount_point = "/mnt/data",
  extra_configs = {"fs.azure.account.key.pricedatastorage.blob.core.windows.net":"UUpMhyQ6jNC4fFy2QbYKaomV+hJAXB3P1oSxDP9jQyXIpBc1ljzZb4wAZQ4U7eyTYphlEHso+4tj+AStbx1GPQ=="})

Import the dataset

In [0]:
df = spark.read.csv('/mnt/data/train.csv',inferSchema=True,header=True)
test_df = spark.read.csv('/mnt/data/test.csv',inferSchema=True,header=True)

Convert spark dataframe into pandas dataframe

In [0]:
df = df.to_pandas_on_spark()
df = df.to_pandas()
In [0]:
test_df = test_df.to_pandas_on_spark()
test_df = test_df.to_pandas()
In [0]:
df.display()
keyfare_amountpickup_datetimepickup_longitudepickup_latitudedropoff_longitudedropoff_latitudepassenger_count
2009-06-15T17:26:21.000+00004.52009-06-15T17:26:21.000+0000-73.84431140.721319-73.8416140.7122781
2010-01-05T16:52:16.000+000016.92010-01-05T16:52:16.000+0000-74.01604840.711303-73.97926840.7820041
2011-08-18T00:35:00.000+00005.72011-08-18T00:35:00.000+0000-73.98273840.76127-73.99124240.7505622
2012-04-21T04:30:42.000+00007.72012-04-21T04:30:42.000+0000-73.9871340.733143-73.99156740.7580921
2010-03-09T07:51:00.000+00005.32010-03-09T07:51:00.000+0000-73.96809540.768008-73.95665540.7837621
2011-01-06T09:50:45.000+000012.12011-01-06T09:50:45.000+0000-74.00096440.73163-73.97289240.7582331
2012-11-20T20:35:00.000+00007.52012-11-20T20:35:00.000+0000-73.98000240.751662-73.97380240.7648421
2012-01-04T17:22:00.000+000016.52012-01-04T17:22:00.000+0000-73.951340.774138-73.99009540.7510481
2012-12-03T13:10:00.000+00009.02012-12-03T13:10:00.000+0000-74.00646240.726713-73.99307840.7316281
2009-09-02T01:11:00.000+00008.92009-09-02T01:11:00.000+0000-73.98065840.733873-73.9915440.7581382
2012-04-08T07:30:50.000+00005.32012-04-08T07:30:50.000+0000-73.99633540.737142-73.98072140.7335591
2012-12-24T11:24:00.000+00005.52012-12-24T11:24:00.000+00000.00.00.00.03
2009-11-06T01:04:03.000+00004.12009-11-06T01:04:03.000+0000-73.99160140.744712-73.98308140.7446822
2013-07-02T19:54:00.000+00007.02013-07-02T19:54:00.000+0000-74.0053640.728867-74.00891340.7109071
2011-04-05T17:11:05.000+00007.72011-04-05T17:11:05.000+0000-74.00182140.737547-73.9980640.7227882
2013-11-23T12:57:00.000+00005.02013-11-23T12:57:00.000+00000.00.00.00.01
2014-02-19T07:22:00.000+000012.52014-02-19T07:22:00.000+0000-73.9864340.760465-73.9889940.7370751
2009-07-22T16:08:00.000+00005.32009-07-22T16:08:00.000+0000-73.9810640.73769-73.99417740.7284121
2010-07-07T14:52:00.000+00005.32010-07-07T14:52:00.000+0000-73.96950540.784843-73.95873240.7833571
2014-12-06T20:36:22.000+00004.02014-12-06T20:36:22.000+0000-73.97981540.751902-73.97944640.7554811
2010-09-07T13:18:00.000+000010.52010-09-07T13:18:00.000+0000-73.98538240.747858-73.97837740.762071
2013-02-12T12:15:46.000+000011.52013-02-12T12:15:46.000+0000-73.95795440.779252-73.9612540.7587871
2009-08-06T18:17:23.000+00004.52009-08-06T18:17:23.000+0000-73.99170740.770505-73.98545940.7636711
2010-12-06T12:29:00.000+00004.92010-12-06T12:29:00.000+0000-74.00063240.747473-73.98667240.7405771
2009-12-10T15:37:00.000+00006.12009-12-10T15:37:00.000+0000-73.96962240.756973-73.98115240.7597121
2011-06-21T16:15:00.000+00007.32011-06-21T16:15:00.000+0000-73.99187540.754437-73.9772340.7743233
2011-02-07T20:01:00.000+00006.52011-02-07T20:01:00.000+00000.00.00.00.01
2011-06-28T19:47:00.000+00004.52011-06-28T19:47:00.000+0000-73.98889340.76016-73.98644540.7578573
2012-05-04T06:11:20.000+00009.32012-05-04T06:11:20.000+0000-73.98925840.690835-74.00413340.725691
2013-08-11T00:52:00.000+00004.52013-08-11T00:52:00.000+0000-73.9810240.73776-73.98066840.7304972
2014-02-19T16:03:00.000+00005.52014-02-19T16:03:00.000+0000-73.97607540.752422-73.98108240.7592851
2015-06-21T21:46:34.000+000022.542015-06-21T21:46:34.000+0000-74.0104827880859540.71766662597656-73.9857711791992340.660366058349611
2009-01-09T16:10:00.000+000031.92009-01-09T16:10:00.000+0000-73.87302740.773883-73.98454540.7695453
2011-09-07T14:05:00.000+00005.72011-09-07T14:05:00.000+0000-73.97616240.744988-73.99000240.7383232
2011-09-07T23:05:44.000+000018.12011-09-07T23:05:44.000+0000-73.99371740.740785-73.99927240.6766171
2015-01-11T03:15:38.000+000058.02015-01-11T03:15:38.000+0000-73.9833297729492340.73871994018555-73.9331970214843840.847225189208981
2015-03-12T08:08:38.000+00004.52015-03-12T08:08:38.000+0000-73.9901733398437540.756446838378906-73.985618591308640.76282882690431
2012-01-19T10:15:30.000+00005.32012-01-19T10:15:30.000+0000-73.99519940.75474-74.00541640.7510841
2013-11-24T11:42:00.000+00009.02013-11-24T11:42:00.000+0000-73.9577440.773617-73.97708740.7584656
2009-03-02T20:42:49.000+00009.82009-03-02T20:42:49.000+0000-73.97267340.759186-73.96989740.7913671
2011-03-29T15:39:49.000+00008.12011-03-29T15:39:49.000+0000-73.98426740.744961-73.98164640.7596081
2011-10-15T10:55:24.000+000010.92011-10-15T10:55:24.000+0000-74.00389940.725514-73.97648440.7655372
2013-11-22T08:38:09.000+000017.52013-11-22T08:38:09.000+0000-73.9784540.76292-74.00848240.7165021
2009-06-10T21:28:00.000+000012.12009-06-10T21:28:00.000+0000-73.98855840.7372-73.95868840.7807481
2011-03-04T18:12:00.000+00005.32011-03-04T18:12:00.000+0000-73.99703740.737095-73.98612840.7350431
2011-08-31T21:14:15.000+00006.92011-08-31T21:14:15.000+0000-73.97111440.758944-73.9779340.7366131
2011-06-01T20:30:00.000+00004.52011-06-01T20:30:00.000+0000-73.98082240.74442-73.99109340.7487971
2011-12-14T07:53:00.000+00003.32011-12-14T07:53:00.000+0000-73.98887740.763577-73.98557340.7602621
2012-07-18T00:16:00.000+00003.32012-07-18T00:16:00.000+0000-73.9866640.756072-73.98972740.7517025
2013-01-29T12:26:00.000+00009.02013-01-29T12:26:00.000+0000-73.99225340.742657-73.98359740.7559471
2011-12-06T09:09:21.000+00009.72011-12-06T09:09:21.000+0000-73.98558240.739765-73.97389940.7604261
2012-10-06T20:31:36.000+00005.52012-10-06T20:31:36.000+0000-73.95282540.772048-73.95219440.7811523
2013-01-23T07:01:38.000+00008.02013-01-23T07:01:38.000+0000-73.98029840.783723-73.97962840.7631791
2013-09-07T03:17:00.000+00007.52013-09-07T03:17:00.000+0000-73.97770840.746212-73.97578240.7450551
2013-11-10T01:12:19.000+000025.52013-11-10T01:12:19.000+0000-73.97449740.751603-73.93492740.8515674
2012-01-04T18:07:29.000+000015.32012-01-04T18:07:29.000+0000-73.9715140.755886-73.96806740.8011731
2010-05-31T18:06:00.000+000034.672010-05-31T18:06:00.000+0000-73.98542740.758853-73.87290740.7744971
2011-03-19T21:55:00.000+00009.72011-03-19T21:55:00.000+0000-73.97954240.727498-73.99931540.7300884
2012-07-19T23:53:14.000+000013.72012-07-19T23:53:14.000+0000-74.00211340.739582-73.97191840.7918992
2009-03-23T12:13:29.000+00006.52009-03-23T12:13:29.000+0000-73.9854340.736011-73.98250140.7248021
2014-07-16T10:57:00.000+00005.02014-07-16T10:57:00.000+0000-73.99614840.74189-73.99220240.7394256
2011-04-22T23:21:03.000+00004.52011-04-22T23:21:03.000+0000-74.00913740.713436-74.00282340.7234283
2012-01-02T14:54:00.000+00004.92012-01-02T14:54:00.000+0000-74.00398540.731677-73.99976540.7235121
2014-05-01T09:12:00.000+00007.02014-05-01T09:12:00.000+0000-73.96620340.7675-73.98091540.774246
2011-11-07T10:47:40.000+00007.32011-11-07T10:47:40.000+0000-74.00391940.753019-73.99236840.7353621
2012-10-07T17:59:08.000+00007.52012-10-07T17:59:08.000+0000-74.00473640.715882-74.01772340.7051411
2014-01-17T09:03:00.000+00008.52014-01-17T09:03:00.000+0000-73.99146740.750575-73.9857540.7415474
2014-04-29T18:28:00.000+000016.52014-04-29T18:28:00.000+0000-73.97032340.75084-73.99839240.7248626
2015-04-12T10:19:05.000+000011.52015-04-12T10:19:05.000+0000-73.9792785644531240.723438262939446-74.0046081542968640.74694824218756
2015-05-12T23:51:42.000+00005.02015-05-12T23:51:42.000+0000-73.9547958374023340.779335021972656-73.9449310302734440.7800865173339841
2009-08-02T02:34:11.000+00006.92009-08-02T02:34:11.000+0000-73.99578140.723411-74.00500440.718952
2010-01-31T10:53:00.000+00003.72010-01-31T10:53:00.000+0000-74.0016340.730767-73.99711240.7375331
2010-05-14T08:09:00.000+00006.92010-05-14T08:09:00.000+0000-73.95511840.768942-73.96349540.7618872
2012-05-21T15:20:00.000+000010.12012-05-21T15:20:00.000+0000-73.97778840.771838-73.966240.7781132
2014-12-08T16:00:01.000+000016.52014-12-08T16:00:01.000+0000-73.982840.745287-74.0142540.7029351
2010-08-16T01:33:00.000+000015.072010-08-16T01:33:00.000+0000-73.96193340.795585-73.96225340.7648172
2010-12-04T14:26:13.000+00007.72010-12-04T14:26:13.000+0000-73.99660140.736569-73.98215240.7443221
2011-08-12T04:20:00.000+000024.92011-08-12T04:20:00.000+0000-74.00666240.73121-73.9259440.8255881
2013-02-06T22:16:00.000+00007.02013-02-06T22:16:00.000+0000-73.98842540.764342-74.00164240.7457522
2014-06-11T22:24:21.000+00008.52014-06-11T22:24:21.000+0000-73.99412840.735087-73.98639340.7514611
2010-08-19T16:33:00.000+00005.72010-08-19T16:33:00.000+0000-73.9738340.763717-73.9894240.7715221
2013-03-10T15:44:00.000+00005.02013-03-10T15:44:00.000+0000-74.0133640.702272-74.0169940.7092451
2013-06-14T08:27:43.000+00008.52013-06-14T08:27:43.000+0000-73.9537140.790813-73.95701540.7776761
2013-07-08T21:24:00.000+000017.02013-07-08T21:24:00.000+0000-74.00972840.705167-73.97089740.7493071
2014-03-21T11:00:29.000+00008.02014-03-21T11:00:29.000+0000-73.95068840.828531-73.96410140.808141
2014-10-02T13:39:56.000+000012.02014-10-02T13:39:56.000+0000-73.99538740.749482-73.97578940.7487411
2011-08-31T08:21:47.000+000012.52011-08-31T08:21:47.000+0000-73.91739940.746485-73.97375640.7638361
2014-05-19T06:26:00.000+00007.52014-05-19T06:26:00.000+0000-73.99081540.730495-73.97833740.7510851
2012-04-05T05:50:00.000+00006.92012-04-05T05:50:00.000+0000-74.00744340.732547-73.99111240.7423125
2015-03-04T14:55:40.000+00005.02015-03-04T14:55:40.000+0000-73.988746643066440.74495315551758-73.9956817626953140.744220733642582
2010-04-27T21:40:07.000+000010.52010-04-27T21:40:07.000+0000-74.00113540.730979-73.98442440.764631
2011-02-22T11:09:16.000+00007.72011-02-22T11:09:16.000+0000-73.96888140.764533-73.98531140.7489561
2015-04-03T16:21:30.000+000011.02015-04-03T16:21:30.000+0000-73.981056213378940.77426528930664-73.9590454101562540.780673980712892
2009-01-09T15:01:20.000+00005.72009-01-09T15:01:20.000+0000-73.99282640.751271-73.98278640.7424321
2013-01-09T14:42:00.000+00009.02013-01-09T14:42:00.000+0000-73.94685240.775802-73.9643440.7607031
2013-07-06T17:18:00.000+000013.52013-07-06T17:18:00.000+0000-73.95065540.783282-73.98436540.7698021
2013-10-08T17:29:00.000+00007.52013-10-08T17:29:00.000+0000-73.97651240.765277-73.97767240.7780521
2014-12-07T12:26:00.000+00009.02014-12-07T12:26:00.000+0000-73.98497740.752122-74.00092540.7579821
2015-05-17T08:02:59.000+000014.02015-05-17T08:02:59.000+0000-73.9792098999023340.723682403564446-74.0174636840820340.711395263671881
2011-06-09T00:53:00.000+00005.72011-06-09T00:53:00.000+0000-73.98305240.722588-73.98802240.7337383
2014-11-12T12:40:29.000+000010.02014-11-12T12:40:29.000+0000-74.00258140.739572-73.9945840.7606821
2010-06-04T14:49:00.000+00005.72010-06-04T14:49:00.000+0000-73.99345240.761447-73.97966240.7596185
2010-11-08T20:42:00.000+00009.72010-11-08T20:42:00.000+0000-73.97070540.761643-73.99283340.7276472
2011-03-09T07:24:34.000+000014.12011-03-09T07:24:34.000+0000-73.97449240.751369-74.01058540.7033641
2011-08-04T10:38:00.000+00007.72011-08-04T10:38:00.000+0000-73.99160740.76318-73.98271840.762392
2009-03-25T00:08:52.000+000052.02009-03-25T00:08:52.000+0000-74.03583940.74732-74.03583940.747321
2010-03-22T10:01:00.000+000011.32010-03-22T10:01:00.000+0000-74.0076740.732177-73.97466340.7589321
2012-03-25T09:22:45.000+00008.52012-03-25T09:22:45.000+0000-73.98668140.725659-73.97706840.7545041
2012-06-05T09:16:00.000+000012.92012-06-05T09:16:00.000+0000-73.96531540.790852-73.97819540.7663756
2012-11-06T11:33:14.000+00009.52012-11-06T11:33:14.000+0000-73.97219540.765883-73.96794240.7619511
2014-05-22T18:30:00.000+00009.02014-05-22T18:30:00.000+0000-73.98227240.748357-73.96932540.7638771
2014-10-17T08:28:00.000+000010.02014-10-17T08:28:00.000+0000-73.99179740.735262-73.97591540.7486976
2012-12-06T18:05:00.000+000035.02012-12-06T18:05:00.000+0000-73.9533140.787772-73.94435240.7197722
2012-12-06T18:05:00.000+00009.02012-12-06T18:05:00.000+0000-73.9608340.77308-73.97837240.7749071
2014-07-20T12:48:35.000+000017.02014-07-20T12:48:35.000+0000-73.9733940.743883-73.95402140.7660631
2009-01-25T18:41:00.000+00006.12009-01-25T18:41:00.000+0000-74.00012240.74308-74.0061540.7342335
2010-03-27T02:26:39.000+000014.52010-03-27T02:26:39.000+0000-73.96159840.716487-73.96041740.6749632
2011-01-05T17:39:00.000+00003.72011-01-05T17:39:00.000+0000-73.96695740.761268-73.96791240.7655351
2012-05-11T15:03:53.000+000032.52012-05-11T15:03:53.000+0000-73.87286240.774105-73.97059340.7643932
2010-01-03T10:20:12.000+00005.32010-01-03T10:20:12.000+0000-73.99508340.739527-73.99959940.7262643
2012-11-08T21:00:00.000+000011.52012-11-08T21:00:00.000+0000-73.97201840.750142-74.00600840.736225
2013-11-23T23:34:03.000+00004.02013-11-23T23:34:03.000+0000-73.99370140.741569-73.98799940.7488341
2010-06-17T16:12:58.000+000010.52010-06-17T16:12:58.000+0000-73.96647340.7575-73.99333640.7450511
2012-08-19T19:56:34.000+000017.72012-08-19T19:56:34.000+0000-73.8708240.773748-73.80831740.70031
2013-01-17T17:22:00.000+00008.02013-01-17T17:22:00.000+00000.00.00.00.02
2013-05-10T16:39:08.000+00005.02013-05-10T16:39:08.000+0000-73.97169640.763378-73.96203540.7765981
2013-09-17T04:22:00.000+000019.02013-09-17T04:22:00.000+0000-73.9872140.729325-73.93198540.6972071
2014-01-06T21:21:00.000+00008.02014-01-06T21:21:00.000+0000-73.98849240.717977-73.9781840.7374071
2010-09-30T08:38:00.000+00007.32010-09-30T08:38:00.000+0000-73.98658840.72165-74.00800540.7171672
2012-10-06T15:47:00.000+00006.52012-10-06T15:47:00.000+0000-73.9821340.774807-73.97358340.7896455
2013-02-11T00:13:00.000+00008.02013-02-11T00:13:00.000+0000-74.00284340.733692-73.98788240.728591
2014-09-12T23:10:00.000+000016.52014-09-12T23:10:00.000+0000-73.98383740.676052-74.00252240.7231451
2009-09-22T21:14:00.000+000049.572009-09-22T21:14:00.000+0000-73.97702340.7526-73.7903140.6437832
2012-02-03T13:46:35.000+000010.52012-02-03T13:46:35.000+0000-73.98800640.737723-73.96569940.7660951
2012-02-12T01:26:00.000+000022.52012-02-12T01:26:00.000+0000-73.988240.75909-73.92368340.868615
2012-12-21T06:47:00.000+000011.52012-12-21T06:47:00.000+0000-73.94747240.771227-73.98183240.7602721
2014-11-01T16:51:09.000+000012.52014-11-01T16:51:09.000+0000-73.98472340.748023-73.97724540.7578912
2013-01-26T18:36:00.000+00005.52013-01-26T18:36:00.000+0000-73.95030540.785607-73.94358740.7895321
2013-05-20T11:03:50.000+00006.52013-05-20T11:03:50.000+0000-73.98073540.747911-73.9705340.7619981
2015-05-31T07:33:18.000+000016.52015-05-31T07:33:18.000+0000-73.9969863891601440.75542831420898-73.9531936645507840.802101135253913
2015-02-15T22:41:32.000+00009.02015-02-15T22:41:32.000+0000-74.0034484863281240.73310089111328-74.0080032348632840.707214355468751
2009-06-25T10:29:00.000+00008.92009-06-25T10:29:00.000+0000-73.957840.768003-73.98171240.7633921
2009-07-23T17:05:10.000+000010.92009-07-23T17:05:10.000+0000-73.98373540.746697-73.95441140.7722191
2011-03-19T15:00:27.000+00008.92011-03-19T15:00:27.000+0000-73.9810340.729782-73.99301140.7528031
2011-05-06T11:37:14.000+00008.52011-05-06T11:37:14.000+0000-73.96311540.774034-73.97525140.7608231
2013-02-08T09:50:04.000+000017.02013-02-08T09:50:04.000+0000-73.96245840.759027-73.98619940.7533971
2010-08-24T01:39:26.000+000012.52010-08-24T01:39:26.000+0000-74.00384840.720855-73.9809840.6683041
2014-05-13T22:19:00.000+000052.52014-05-13T22:19:00.000+0000-73.98226540.762062-73.7685540.6751351
2014-10-25T21:24:00.000+000016.02014-10-25T21:24:00.000+0000-74.00567740.745547-73.96266340.7942951
2015-04-19T22:21:12.000+00008.02015-04-19T22:21:12.000+0000-73.9854888916015640.74728012084961-74.0076751708984440.7407684326171951
2010-05-17T07:44:00.000+000017.32010-05-17T07:44:00.000+0000-73.95097240.785633-74.0102440.7203021
2011-10-26T03:37:00.000+00005.72011-10-26T03:37:00.000+0000-74.0084440.711253-74.00131340.7310781
2015-04-18T09:30:31.000+00005.52015-04-18T09:30:31.000+0000-73.9809112548828140.7420654296875-73.9769897460937540.751655578613281
2009-02-27T13:31:21.000+000016.52009-02-27T13:31:21.000+0000-73.97493840.762091-74.00330940.7061952
2009-07-16T20:33:00.000+000012.92009-07-16T20:33:00.000+0000-73.98075540.680558-73.9891140.7267882
2011-05-16T13:10:38.000+000010.12011-05-16T13:10:38.000+0000-73.99124540.739058-73.99297240.767681
2013-08-09T21:19:00.000+00009.52013-08-09T21:19:00.000+0000-73.99258340.730417-74.00535240.7402471
2010-03-14T15:40:00.000+00004.52010-03-14T15:40:00.000+0000-73.97987240.749027-73.97655340.7574985
2011-04-27T13:19:48.000+00006.52011-04-27T13:19:48.000+0000-73.97154140.764009-73.97593740.7559711
2015-01-30T00:16:06.000+000021.52015-01-30T00:16:06.000+0000-74.001098632812540.72149658203125-73.9594345092773440.65306472778321
2014-11-04T12:11:19.000+00008.02014-11-04T12:11:19.000+0000-73.97518940.759095-73.9805140.767611
2009-12-27T21:07:39.000+00004.92009-12-27T21:07:39.000+0000-74.00301840.73978-73.99153340.7330911
2010-07-04T13:07:47.000+00005.72010-07-04T13:07:47.000+0000-73.99103740.750049-73.98043840.751932
2011-06-12T13:33:00.000+000015.32011-06-12T13:33:00.000+0000-73.94947740.768018-74.00311840.7330225
2012-08-28T12:29:40.000+000014.92012-08-28T12:29:40.000+0000-73.99221440.758864-73.993840.7227181
2012-11-11T18:23:00.000+00007.02012-11-11T18:23:00.000+0000-73.99999840.727087-73.99244840.7356021
2013-03-24T18:05:42.000+000035.52013-03-24T18:05:42.000+0000-73.86389140.770005-74.00724640.7055331
2014-08-13T08:26:00.000+00008.52014-08-13T08:26:00.000+0000-73.95459840.78676-73.96601340.7681121
2009-01-16T21:10:00.000+00004.52009-01-16T21:10:00.000+0000-73.99414340.751193-73.98889740.7597421
2011-01-21T18:43:46.000+00004.12011-01-21T18:43:46.000+0000-73.98227940.768364-73.98596840.7629391
2011-02-26T20:27:36.000+000011.72011-02-26T20:27:36.000+0000-73.98149640.781004-73.9959240.7388131
2013-06-22T02:35:01.000+000023.02013-06-22T02:35:01.000+0000-73.99772840.746099-73.94765640.8294511
2009-06-06T23:56:00.000+00005.72009-06-06T23:56:00.000+0000-73.98235740.762498-73.9732140.7553452
2009-01-24T09:51:00.000+00005.32009-01-24T09:51:00.000+0000-73.9670740.769178-73.95489540.778211
2015-02-27T07:50:56.000+000010.52015-02-27T07:50:56.000+0000-73.9440231323242240.77595901489258-73.9550476074218840.785079956054691
2009-03-25T14:48:49.000+00004.92009-03-25T14:48:49.000+0000-73.98209540.774001-73.97537340.7871111
2010-09-10T18:45:00.000+00006.52010-09-10T18:45:00.000+0000-73.9835340.766992-73.98625540.7797084
2011-08-31T13:47:02.000+000011.32011-08-31T13:47:02.000+0000-73.98115440.729204-74.00740740.748512
2013-04-12T04:39:51.000+000011.52013-04-12T04:39:51.000+0000-73.96351140.761732-73.91748840.7397761
2009-05-29T09:46:11.000+00005.32009-05-29T09:46:11.000+0000-73.98341540.761844-73.99041440.7563752
2010-07-15T19:09:01.000+00005.72010-07-15T19:09:01.000+0000-74.00605540.733166-74.00289540.745531
2009-09-07T18:52:00.000+00008.12009-09-07T18:52:00.000+0000-73.95219840.788107-73.98076740.7749951
2010-06-09T06:20:32.000+00006.12010-06-09T06:20:32.000+0000-74.00808340.719238-73.9983240.7379771
2012-04-15T17:02:44.000+00009.32012-04-15T17:02:44.000+0000-73.99563640.746573-73.98443740.7671451
2013-02-06T14:52:00.000+00004.52013-02-06T14:52:00.000+0000-73.97207240.755692-73.97208240.7557272
2011-12-13T05:56:00.000+00005.72011-12-13T05:56:00.000+0000-73.9904940.755982-73.97420240.754214
2014-07-27T08:22:00.000+000016.52014-07-27T08:22:00.000+0000-73.9548540.76542-74.0075140.738772
2013-06-06T15:23:56.000+000017.02013-06-06T15:23:56.000+0000-73.95446240.764046-73.99459340.7292722
2014-07-12T15:22:00.000+000024.52014-07-12T15:22:00.000+0000-74.0127840.707952-73.99793240.7606326
2010-05-25T20:14:00.000+00006.12010-05-25T20:14:00.000+0000-74.00527840.735298-73.98669840.7298921
2012-09-08T00:49:20.000+00006.02012-09-08T00:49:20.000+0000-74.00493540.729625-74.01615640.717411
2014-01-08T21:55:58.000+00006.52014-01-08T21:55:58.000+0000-73.99848840.726303-73.99848840.7263031
2010-09-05T17:08:00.000+00003.72010-09-05T17:08:00.000+00000.00.00.00.05
2012-08-30T18:57:00.000+00004.52012-08-30T18:57:00.000+0000-73.926540.765577-73.93789740.764513
2013-05-02T07:41:00.000+000027.02013-05-02T07:41:00.000+0000-73.98728540.718622-73.95929540.7784821
2014-02-05T00:28:00.000+000016.02014-02-05T00:28:00.000+0000-73.99665240.744495-73.98025340.7376351
2010-01-12T17:11:00.000+000016.12010-01-12T17:11:00.000+0000-73.95922240.763282-73.963340.7169351
2010-11-07T17:14:23.000+000015.72010-11-07T17:14:23.000+0000-73.97489540.751455-73.98175440.7835422
2012-04-22T00:35:00.000+000026.92012-04-22T00:35:00.000+0000-73.86307240.768622-73.98214540.7361676
2013-01-05T21:36:00.000+00005.52013-01-05T21:36:00.000+0000-73.98969240.735497-73.98201240.7393921
2013-10-05T09:12:21.000+00006.02013-10-05T09:12:21.000+0000-74.0003140.747961-73.99363640.7572291
2009-11-16T23:53:00.000+00007.72009-11-16T23:53:00.000+0000-74.0014540.717487-74.01745540.7097851
2011-04-05T11:29:00.000+000012.92011-04-05T11:29:00.000+0000-73.98518540.72777-73.98060540.7591431
2012-04-25T20:39:00.000+000011.32012-04-25T20:39:00.000+0000-73.99397340.746577-74.0050640.7093651
2011-01-10T16:07:00.000+000042.52011-01-10T16:07:00.000+0000-73.79567740.807722-73.97868340.7243652
2011-01-14T18:10:00.000+00005.72011-01-14T18:10:00.000+0000-73.9863740.74738-73.97556740.7445722
2012-04-02T08:02:16.000+00005.32012-04-02T08:02:16.000+0000-73.94800140.77854-73.95856640.7784832
2010-02-10T08:57:54.000+000010.52010-02-10T08:57:54.000+0000-73.95410840.766901-73.98413340.7434751
2011-05-31T22:21:01.000+00007.32011-05-31T22:21:01.000+0000-73.99400940.76144-73.97281140.7925741
2011-09-26T09:32:42.000+00004.52011-09-26T09:32:42.000+0000-73.99533140.739986-73.98765540.7367071
2012-10-23T08:09:25.000+000012.52012-10-23T08:09:25.000+0000-73.98233240.768633-73.98334340.7443721
2013-09-07T22:29:00.000+000016.52013-09-07T22:29:00.000+0000-73.995240.731697-73.9497740.7803471
2012-07-31T19:20:00.000+00004.92012-07-31T19:20:00.000+0000-74.00270740.72664-73.99182540.727222
2011-08-26T08:00:00.000+00004.12011-08-26T08:00:00.000+0000-73.99095340.733067-73.99623540.725571
2013-03-17T12:56:58.000+000015.52013-03-17T12:56:58.000+0000-73.98513240.76853-74.00228540.7300081
2015-05-25T15:11:09.000+000011.02015-05-25T15:11:09.000+0000-73.9722137451171940.76557159423828-73.9795837402343840.736469268798821
2009-04-08T19:11:10.000+00004.92009-04-08T19:11:10.000+0000-73.99828740.72749-73.98985440.7352392
2009-06-06T01:57:52.000+000011.32009-06-06T01:57:52.000+0000-73.98019640.726966-73.95641340.775471
2011-02-27T14:45:00.000+00007.32011-02-27T14:45:00.000+0000-73.98375840.74643-73.96355740.7740881
2012-01-13T11:28:00.000+000014.92012-01-13T11:28:00.000+0000-73.95526840.782767-73.93238240.7948126
2012-03-16T07:58:00.000+000030.92012-03-16T07:58:00.000+0000-73.98194240.763977-73.87045540.7736075
2012-06-18T20:57:27.000+00006.12012-06-18T20:57:27.000+0000-73.9897240.75238-74.00755340.7431971
2010-02-23T09:49:00.000+00003.32010-02-23T09:49:00.000+0000-73.99580240.749905-73.99454340.7509071
2012-01-06T07:05:08.000+00004.12012-01-06T07:05:08.000+0000-73.99186340.754275-73.98379640.7532131
2014-07-21T14:03:00.000+000012.02014-07-21T14:03:00.000+0000-73.97385740.764185-73.99443540.7502423
2014-08-05T11:44:33.000+00009.02014-08-05T11:44:33.000+0000-73.99148540.754599-74.0049740.7516931
2012-03-29T03:51:00.000+00002.52012-03-29T03:51:00.000+0000-73.98914240.720105-73.98877740.7206621
2012-06-30T13:43:00.000+00008.92012-06-30T13:43:00.000+0000-73.9894840.743287-73.96569240.7545121
2014-01-31T04:49:53.000+000010.52014-01-31T04:49:53.000+0000-73.97899140.72375-73.96304640.7118551
2010-11-16T19:40:00.000+00005.72010-11-16T19:40:00.000+0000-74.00055240.727492-74.00503740.7191231
2012-12-15T19:11:53.000+00007.02012-12-15T19:11:53.000+0000-74.00246240.718762-74.00707140.7055362
2014-07-20T23:51:54.000+000012.02014-07-20T23:51:54.000+0000-73.98499740.768466-73.94456440.8004661
2010-05-24T14:24:00.000+000049.572010-05-24T14:24:00.000+0000-73.98248340.75674-73.78998540.646911
2011-07-24T01:14:35.000+00008.52011-07-24T01:14:35.000+00000.00.00.00.02
2012-08-18T18:33:00.000+00004.52012-08-18T18:33:00.000+0000-73.94703540.776027-73.95549840.7643071
2009-08-08T21:32:00.000+00007.32009-08-08T21:32:00.000+0000-73.97789740.762802-73.9915340.7502525
2010-01-08T00:28:00.000+00005.32010-01-08T00:28:00.000+0000-73.98640240.754723-73.99889840.7392481
2010-09-19T19:28:00.000+00006.92010-09-19T19:28:00.000+0000-73.96742540.755712-73.98303540.7349135
2012-05-16T18:14:00.000+00009.32012-05-16T18:14:00.000+0000-73.97108840.792648-73.96840540.7696731
2009-02-13T16:54:52.000+00006.72009-02-13T16:54:52.000+0000-73.95966940.779718-73.97625940.7884131
2009-06-20T19:28:37.000+00007.32009-06-20T19:28:37.000+0000-73.97934540.77663-73.97384240.7570741
2013-09-03T08:08:00.000+00009.02013-09-03T08:08:00.000+0000-73.9808840.779967-73.95374740.787771
2013-01-20T14:33:27.000+000013.02013-01-20T14:33:27.000+0000-74.00812540.738935-73.98052240.7599532
2013-07-31T06:51:13.000+000019.02013-07-31T06:51:13.000+0000-73.98883440.76428-73.94140540.8386641
2013-09-09T22:12:59.000+00005.52013-09-09T22:12:59.000+0000-73.97647440.765048-73.96466540.7629861
2009-01-23T07:28:00.000+00008.12009-01-23T07:28:00.000+0000-73.99606840.732605-73.98067540.7618621
2011-02-18T13:19:49.000+00009.32011-02-18T13:19:49.000+0000-73.97321140.760752-73.97426540.7882811
2013-05-11T19:51:00.000+000018.02013-05-11T19:51:00.000+0000-73.99784540.721235-73.98825740.7641251
2014-09-13T12:17:00.000+000012.02014-09-13T12:17:00.000+0000-73.98422740.766897-73.9623940.7760371
2009-04-21T22:59:27.000+00007.32009-04-21T22:59:27.000+0000-73.96853440.752603-73.99262540.7429161
2009-09-26T15:17:20.000+00004.92009-09-26T15:17:20.000+0000-73.9555440.781958-73.96219640.7720952
2010-05-28T21:33:07.000+000016.12010-05-28T21:33:07.000+0000-73.78950640.64704-73.81562240.6803641
2011-05-02T08:20:11.000+000012.92011-05-02T08:20:11.000+0000-73.97860240.76412-74.00885840.7156372
2015-02-14T19:00:23.000+00004.02015-02-14T19:00:23.000+0000-73.9619750976562540.7761116027832-73.9548492431640640.774074554443361
2011-05-02T12:44:59.000+000015.32011-05-02T12:44:59.000+0000-74.00663640.751407-73.95497940.7652811
2012-06-24T17:33:00.000+000011.72012-06-24T17:33:00.000+0000-73.95449740.769857-73.98431540.7460071
2010-05-22T23:29:57.000+000025.32010-05-22T23:29:57.000+0000-74.00134340.74132-73.92861940.8642671
2010-06-30T02:22:05.000+00008.92010-06-30T02:22:05.000+0000-73.99311240.719911-73.95672940.7207231
2013-04-26T02:06:00.000+00006.02013-04-26T02:06:00.000+0000-73.97877840.753502-73.97324740.7481471
2013-05-02T03:57:12.000+00006.02013-05-02T03:57:12.000+0000-73.9957840.716218-74.00913240.720781
2011-01-23T11:44:28.000+00006.52011-01-23T11:44:28.000+0000-74.00366540.736906-73.99784340.7241871
2012-10-14T21:06:27.000+00007.52012-10-14T21:06:27.000+0000-73.9773340.74948-73.98766940.7327091
2015-04-30T14:07:57.000+000016.52015-04-30T14:07:57.000+0000-74.0039901733398440.74797821044922-73.9831924438476440.756328582763671
2010-07-12T09:44:33.000+00004.92010-07-12T09:44:33.000+0000-73.98324940.734655-73.99127840.7389181
2012-01-08T19:03:15.000+00009.72012-01-08T19:03:15.000+0000-73.96298140.766443-73.9889340.7314341
2012-04-24T13:00:36.000+00007.72012-04-24T13:00:36.000+0000-73.9793540.784608-73.96393340.8081451
2014-05-09T09:42:16.000+000019.02014-05-09T09:42:16.000+0000-73.96867540.799103-73.93589840.8498632
2009-07-31T13:53:52.000+000016.92009-07-31T13:53:52.000+0000-73.99005740.756307-73.94960440.8344641
2012-11-18T12:17:00.000+000010.52012-11-18T12:17:00.000+0000-74.00219840.739608-73.98734240.7202952
2011-06-15T18:07:00.000+00008.92011-06-15T18:07:00.000+0000-73.9963340.753225-73.97889540.7669633
2012-08-25T01:53:42.000+00007.52012-08-25T01:53:42.000+0000-73.99589240.746454-73.99589240.7464541
2012-09-06T13:41:00.000+00005.52012-09-06T13:41:00.000+0000-74.00558340.740728-74.00342340.7487051
2009-05-13T18:17:00.000+000010.92009-05-13T18:17:00.000+0000-73.96495840.775261-73.94966140.8096891
2009-10-30T18:13:00.000+00008.12009-10-30T18:13:00.000+00000.00.00.00.04
2010-01-17T22:07:00.000+00005.72010-01-17T22:07:00.000+0000-73.96759840.756242-73.95327740.768331
2009-12-06T11:58:29.000+000018.12009-12-06T11:58:29.000+0000-74.00813440.748631-73.95234940.7805122
2010-06-30T06:15:00.000+000010.92010-06-30T06:15:00.000+0000-73.9539440.781298-73.99442340.750145
2011-04-04T18:56:00.000+00008.92011-04-04T18:56:00.000+0000-73.93909340.805102-73.95607340.7719955
2014-03-03T23:30:00.000+000013.52014-03-03T23:30:00.000+0000-73.98162740.78042-74.00846540.7340122
2014-05-19T20:59:26.000+00005.02014-05-19T20:59:26.000+0000-74.0026940.739438-73.99457940.750572
2011-12-07T19:40:21.000+00005.32011-12-07T19:40:21.000+0000-73.95874940.781019-73.94587640.7781651
2012-06-17T02:05:53.000+00007.72012-06-17T02:05:53.000+0000-73.9877940.721226-73.99242540.7357231
2013-01-01T14:26:00.000+00009.02013-01-01T14:26:00.000+0000-73.96946540.79798-73.98231540.7767671
2011-10-08T00:24:00.000+000016.12011-10-08T00:24:00.000+0000-73.98856840.732097-73.95749840.7426571
2012-07-30T16:19:08.000+00004.92012-07-30T16:19:08.000+0000-73.96659740.794345-73.96568240.8038082
2012-09-09T10:24:15.000+00005.52012-09-09T10:24:15.000+0000-73.99943240.749066-73.99507740.7382641
2013-06-14T17:37:00.000+000057.332013-06-14T17:37:00.000+0000-73.78112740.645007-73.98180240.7625151
2014-02-28T22:45:07.000+00008.52014-02-28T22:45:07.000+0000-73.95660640.771111-73.97711140.7768113
2014-06-10T14:18:29.000+00009.52014-06-10T14:18:29.000+0000-73.98193240.777668-73.96005840.8096881
2015-03-29T13:31:25.000+00007.52015-03-29T13:31:25.000+0000-73.953102111816440.788700103759766-73.9567794799804840.805904388427731
2009-12-14T12:33:00.000+00006.92009-12-14T12:33:00.000+0000-73.98243240.745747-73.98243240.7457471
2013-09-21T02:54:00.000+00007.52013-09-21T02:54:00.000+0000-73.99199540.74499-73.98623740.7296372
2009-08-31T10:25:00.000+00008.12009-08-31T10:25:00.000+0000-73.98898840.777013-73.99744540.7601551
2011-01-18T23:48:00.000+00006.12011-01-18T23:48:00.000+0000-74.00664240.738927-74.01082840.7179073
2012-06-26T13:08:14.000+00005.72012-06-26T13:08:14.000+0000-73.96661240.759278-73.97577340.7554621
2010-01-21T08:39:00.000+000014.12010-01-21T08:39:00.000+0000-73.98736540.738572-73.97721840.7753521
2011-07-21T15:43:00.000+00005.72011-07-21T15:43:00.000+0000-73.98980740.74123-73.99391740.7264921
2013-11-06T11:26:54.000+00007.02013-11-06T11:26:54.000+0000-73.9590640.781061-73.9620640.7686041
2014-02-09T02:17:00.000+000012.02014-02-09T02:17:00.000+0000-73.98565240.72212-73.97095540.7519521
2015-04-18T08:29:08.000+000011.52015-04-18T08:29:08.000+0000-73.9551162719726640.76898956298828-73.9842376708984440.748439788818361
2010-03-27T22:20:51.000+000012.12010-03-27T22:20:51.000+0000-73.87093640.773703-73.91426940.7536811
2010-06-15T13:31:08.000+000026.672010-06-15T13:31:08.000+0000-73.95806340.760414-73.86144340.7681811
2010-09-13T09:37:00.000+00004.52010-09-13T09:37:00.000+0000-73.9867440.755362-73.99571340.7641371
2011-04-04T20:59:01.000+000010.12011-04-04T20:59:01.000+0000-73.98455640.742882-73.95908140.7635511
2011-05-08T10:43:27.000+00007.72011-05-08T10:43:27.000+0000-73.98101940.781874-73.98199740.7565971
2014-07-11T05:07:00.000+000025.02014-07-11T05:07:00.000+0000-73.9516640.772657-74.01058340.7214052
2014-08-21T10:21:17.000+000019.02014-08-21T10:21:17.000+0000-73.9740240.762828-73.94083940.7264671
2013-10-31T11:49:16.000+000014.02013-10-31T11:49:16.000+0000-73.98859440.753364-73.98931940.7232181
2013-11-15T01:51:35.000+00005.02013-11-15T01:51:35.000+0000-73.98788840.721048-73.98313240.7311871
2015-05-10T22:41:10.000+000043.52015-05-10T22:41:10.000+0000-73.9802093505859540.78373336791992-74.0113449096679840.644157409667971
2015-06-20T09:50:28.000+00008.02015-06-20T09:50:28.000+0000-74.0107269287109440.71009063720703-73.9981002807617340.7229003906251
2009-03-13T17:43:18.000+00008.72009-03-13T17:43:18.000+0000-73.97798440.754546-73.95894740.7790934
2011-01-27T21:30:00.000+00003.72011-01-27T21:30:00.000+0000-73.97089240.755915-73.96674740.7605171
2011-11-24T01:58:25.000+000020.52011-11-24T01:58:25.000+0000-73.96572340.758641-73.93782440.8556361
2015-06-02T23:16:15.000+000034.02015-06-02T23:16:15.000+0000-73.9748992919921940.751094818115234-73.908546447753940.881877899169920
2015-03-19T12:38:17.000+000052.832015-03-19T12:38:17.000+0000-73.8730545043945340.77408599853516-73.9827270507812540.77149581909181
2009-07-16T22:38:00.000+00006.12009-07-16T22:38:00.000+0000-73.97894540.76707-73.97789740.7835681
2013-06-22T13:48:00.000+00008.52013-06-22T13:48:00.000+0000-73.97687740.759192-73.99168540.749811
2014-03-10T19:50:51.000+000020.02014-03-10T19:50:51.000+0000-73.89317740.790756-73.89257840.7884831
2010-05-28T08:18:34.000+000010.52010-05-28T08:18:34.000+0000-73.98588140.7383-73.9649940.7752371
2012-03-10T22:53:25.000+000026.52012-03-10T22:53:25.000+0000-73.77674740.645265-73.81380340.7090351
2015-06-01T21:41:06.000+00008.02015-06-01T21:41:06.000+0000-73.9617843627929840.759578704833984-73.9789428710937540.7726058959960944
2009-01-26T00:44:42.000+000010.62009-01-26T00:44:42.000+0000-73.99427940.690409-74.01673940.7090631
2010-09-21T07:06:31.000+00004.52010-09-21T07:06:31.000+0000-73.96537240.759256-73.9748740.7523731
2011-03-09T22:21:25.000+00009.72011-03-09T22:21:25.000+0000-73.97782940.788979-73.96793540.7605081
2011-12-05T08:38:34.000+000020.52011-12-05T08:38:34.000+0000-73.96861940.766432-74.00855940.7045911
2012-01-06T10:57:10.000+00009.32012-01-06T10:57:10.000+0000-73.98222940.731822-73.98023940.7601621
2014-05-25T21:09:00.000+000018.52014-05-25T21:09:00.000+0000-74.00538540.707002-73.99279340.7507421
2014-04-27T21:56:45.000+00005.02014-04-27T21:56:45.000+0000-73.98275140.762738-73.97835440.7645642
2009-08-03T08:19:45.000+000034.02009-08-03T08:19:45.000+0000-73.86350640.769985-73.9758240.7654461
2012-11-08T20:07:35.000+000023.52012-11-08T20:07:35.000+0000-73.99202840.75497-73.91266340.7801571
2009-12-11T15:57:17.000+00004.52009-12-11T15:57:17.000+0000-73.98090940.774585-73.9813640.7794193
2013-12-07T13:25:00.000+00008.02013-12-07T13:25:00.000+0000-73.98521740.742177-73.9999840.7269171
2010-02-27T20:13:00.000+000026.52010-02-27T20:13:00.000+0000-73.97776540.766177-73.97798240.7669375
2014-12-24T11:23:00.000+00005.52014-12-24T11:23:00.000+0000-74.00482240.741812-74.00731240.7335772
2009-03-23T20:24:00.000+00006.12009-03-23T20:24:00.000+0000-73.9879540.757852-73.98822740.7499631
2010-03-23T17:43:00.000+00004.92010-03-23T17:43:00.000+0000-73.97044240.764695-73.96190740.7653924
2010-01-26T14:55:00.000+00005.32010-01-26T14:55:00.000+0000-73.99308540.752002-73.98033740.764831
2011-07-05T14:23:00.000+00008.12011-07-05T14:23:00.000+0000-73.9909740.742158-73.97772840.726731
2013-04-01T00:04:15.000+000020.332013-04-01T00:04:15.000+0000-73.99471840.750306-73.95051140.7285661
2013-06-28T20:24:00.000+00004.52013-06-28T20:24:00.000+0000-73.95528240.768865-73.94968340.7764721
2014-05-12T12:11:28.000+00007.02014-05-12T12:11:28.000+0000-74.00279240.760515-74.00441540.7419731
2009-07-11T12:20:03.000+00007.72009-07-11T12:20:03.000+0000-73.98714540.722568-74.00540240.7395831
2009-10-16T10:32:00.000+00007.32009-10-16T10:32:00.000+0000-73.99057540.746117-74.00322740.7514471
2010-06-09T14:53:47.000+000033.072010-06-09T14:53:47.000+0000-73.86276440.769064-73.98403340.7528422
2011-05-04T13:44:00.000+000036.52011-05-04T13:44:00.000+0000-73.87306840.774183-73.97884740.7620625
2014-01-01T05:22:00.000+00005.02014-01-01T05:22:00.000+0000-73.9943640.72039-73.9857740.723042
2014-06-25T17:43:16.000+000023.52014-06-25T17:43:16.000+0000-73.95858540.775615-74.0004840.7376111
2012-05-09T15:26:00.000+00006.12012-05-09T15:26:00.000+0000-73.9798540.786315-73.98506840.7741331
2013-01-12T18:10:00.000+000011.02013-01-12T18:10:00.000+0000-73.95659740.777432-73.98003540.7631751
2014-09-05T15:23:00.000+00006.02014-09-05T15:23:00.000+0000-73.9682640.76514-73.96111540.7748826
2009-09-20T11:32:00.000+000011.32009-09-20T11:32:00.000+0000-73.97586840.790142-74.00669540.7512785
2009-11-15T19:58:00.000+00008.12009-11-15T19:58:00.000+0000-73.99039740.75103-73.98113740.7647181
2010-03-28T22:32:44.000+00008.92010-03-28T22:32:44.000+0000-74.00076340.729744-73.97466240.7491593
2011-02-19T22:25:00.000+00004.52011-02-19T22:25:00.000+0000-73.9978440.68295-73.98019840.6768421
2013-01-31T19:38:05.000+000011.02013-01-31T19:38:05.000+0000-73.97883640.764745-73.98477440.7459781
2013-06-18T10:27:05.000+00008.52013-06-18T10:27:05.000+0000-73.99210840.764203-73.97340.7626951
2013-07-04T16:41:27.000+00008.52013-07-04T16:41:27.000+00000.00.00.00.01
2010-01-15T11:11:07.000+00008.12010-01-15T11:11:07.000+0000-73.97891640.78712-73.95730740.7835881
2010-09-19T15:17:00.000+00006.92010-09-19T15:17:00.000+0000-73.99626840.738123-73.9823840.736171
2013-11-19T22:09:00.000+00006.02013-11-19T22:09:00.000+0000-73.97146240.761332-73.98079740.7680021
2009-04-27T20:28:39.000+00005.32009-04-27T20:28:39.000+0000-73.98892740.760223-73.99147440.7505911
2011-11-27T00:57:39.000+00006.12011-11-27T00:57:39.000+0000-73.98006840.743103-73.99118140.7502281
2012-11-10T00:30:53.000+00009.52012-11-10T00:30:53.000+0000-73.99577640.748921-73.96882140.7643912
2013-12-18T09:15:00.000+000011.52013-12-18T09:15:00.000+0000-73.9794140.766107-74.00301540.7505221
2015-03-14T09:23:41.000+000017.02015-03-14T09:23:41.000+0000-74.0129470825195340.705242156982415-73.9807052612304840.742214202880866
2009-07-30T14:44:00.000+00005.32009-07-30T14:44:00.000+0000-73.97800240.778607-73.97066240.7886251
2013-06-11T16:27:57.000+000010.02013-06-11T16:27:57.000+0000-73.99588340.743785-73.99005740.7671371
2014-12-08T01:00:16.000+000015.52014-12-08T01:00:16.000+0000-73.95767540.717887-73.94258340.6863971
2010-06-11T17:41:38.000+00006.92010-06-11T17:41:38.000+0000-73.97775740.762991-73.98380140.7795181
2011-05-01T12:48:32.000+000018.12011-05-01T12:48:32.000+0000-73.98659240.761807-74.01065940.7041331
2015-05-21T09:23:05.000+000015.52015-05-21T09:23:05.000+0000-73.994117736816440.75117874145508-73.9751129150390640.75645828247071
2012-02-03T01:55:19.000+000010.12012-02-03T01:55:19.000+0000-73.98233440.722411-73.96490740.7556441
2013-03-22T19:20:00.000+000021.52013-03-22T19:20:00.000+0000-73.95523540.773077-74.00795540.717116
2014-10-04T20:10:00.000+00008.52014-10-04T20:10:00.000+0000-73.9941340.76668-73.9886140.757051
2012-08-12T16:22:52.000+00007.32012-08-12T16:22:52.000+0000-73.98888340.73405-73.99238540.7248421
2014-05-29T05:57:22.000+00002.52014-05-29T05:57:22.000+00000.00.00.00.01
2014-09-16T15:12:19.000+00008.52014-09-16T15:12:19.000+0000-73.95811840.773086-73.94694140.7799941
2010-07-25T09:56:00.000+00006.12010-07-25T09:56:00.000+0000-73.97044740.75779-73.96968740.7699235
2012-02-25T19:43:00.000+000014.12012-02-25T19:43:00.000+0000-73.98109740.764483-73.9918540.7220371
2013-12-30T15:16:17.000+00006.02013-12-30T15:16:17.000+0000-73.974240.762693-73.97982440.7555471
2014-12-05T13:59:54.000+00008.52014-12-05T13:59:54.000+0000-73.95882340.783588-73.97869740.7775331
2015-05-04T09:36:13.000+00008.02015-05-04T09:36:13.000+0000-73.9879302978515540.72850036621094-74.0072860717773440.727478027343751
2012-04-25T16:19:00.000+00005.32012-04-25T16:19:00.000+0000-73.97191340.75925-73.96290540.772161
2014-01-06T19:24:29.000+000010.52014-01-06T19:24:29.000+0000-73.97838940.757757-73.98044240.7336261
2015-02-20T07:12:52.000+00005.52015-02-20T07:12:52.000+0000-73.9707794189453140.75881576538086-73.9701538085937540.748943328857421
2009-08-21T19:35:05.000+00008.12009-08-21T19:35:05.000+0000-73.96085340.761557-73.97633540.7483611
2012-11-15T08:39:00.000+000013.02012-11-15T08:39:00.000+00000.00.00.00.01
2014-04-29T09:51:15.000+00008.52014-04-29T09:51:15.000+0000-73.9947640.765585-73.99602640.7586981
2010-11-26T16:01:01.000+00006.12010-11-26T16:01:01.000+0000-73.95331640.767588-73.97152740.7574991
2010-12-26T11:50:32.000+000012.92010-12-26T11:50:32.000+0000-73.97522440.765201-73.99875440.7281
2014-02-01T21:06:00.000+000010.02014-02-01T21:06:00.000+0000-73.97902240.777667-73.99217240.7215555
2014-07-08T20:16:00.000+00008.52014-07-08T20:16:00.000+0000-74.00554740.745687-74.01124740.7287336
2010-04-15T18:13:00.000+00004.92010-04-15T18:13:00.000+0000-73.95466540.773395-73.9468640.7760931
2012-09-26T13:14:47.000+00006.02012-09-26T13:14:47.000+0000-73.96448340.764431-73.95657640.7798521
2014-01-10T08:16:07.000+00005.02014-01-10T08:16:07.000+0000-73.9821440.772705-73.98869140.7743251
2014-03-12T18:12:44.000+000012.02014-03-12T18:12:44.000+0000-73.84490440.736318-73.84490440.7363181
2013-03-02T15:47:27.000+000013.52013-03-02T15:47:27.000+0000-73.9826540.753748-74.0079340.7419221
2015-03-11T14:48:58.000+000033.832015-03-11T14:48:58.000+0000-73.9733047485351640.756385803222656-73.8724441528320340.774307250976561
2009-09-02T05:18:10.000+000025.72009-09-02T05:18:10.000+0000-73.99172940.760501-73.86124640.7676191
2010-05-21T08:35:00.000+000013.72010-05-21T08:35:00.000+0000-73.99212840.739535-73.9581440.7687973
2011-10-16T22:37:25.000+000010.52011-10-16T22:37:25.000+0000-73.99726540.719963-73.99426840.7542121
2012-03-07T11:26:12.000+00005.72012-03-07T11:26:12.000+0000-73.95387140.766331-73.96246540.7747571
2013-08-24T17:07:00.000+00009.02013-08-24T17:07:00.000+0000-73.99337240.736177-73.97827740.757862
2014-02-06T11:17:00.000+000022.52014-02-06T11:17:00.000+0000-73.9807140.782635-74.0020440.7194251
2014-02-06T11:17:00.000+00007.52014-02-06T11:17:00.000+0000-73.95446340.769887-73.96162740.779361
2011-04-20T18:51:56.000+000014.12011-04-20T18:51:56.000+0000-73.99213140.724066-73.9805740.7628771
2012-05-03T21:28:00.000+00009.32012-05-03T21:28:00.000+0000-73.97210840.759308-73.99926340.7613221
2014-02-22T18:41:34.000+00004.02014-02-22T18:41:34.000+0000-73.99036640.757343-73.98537340.7606041
2014-10-03T16:31:00.000+00005.52014-10-03T16:31:00.000+0000-73.9922340.725887-73.99378240.7352771
2009-05-18T12:30:00.000+00009.32009-05-18T12:30:00.000+0000-73.97578240.74727-73.9661140.7629331
2010-06-26T09:59:00.000+00007.32010-06-26T09:59:00.000+0000-73.99962740.743547-73.9892740.7568622
2013-06-20T12:36:08.000+00004.52013-06-20T12:36:08.000+0000-73.98844640.770843-73.98598540.7777081
2013-09-12T11:32:00.000+000013.02013-09-12T11:32:00.000+0000-73.9820640.772705-73.95621340.7717771
2010-04-10T16:56:00.000+00005.72010-04-10T16:56:00.000+0000-73.96642240.767587-73.97336340.758272
2014-11-15T13:12:56.000+00008.02014-11-15T13:12:56.000+0000-74.00538240.749044-73.9941240.7611851
2015-05-20T20:29:35.000+000020.52015-05-20T20:29:35.000+0000-74.011596679687540.70290756225586-73.9722290039062540.7631454467773442
2011-10-16T11:37:46.000+00009.32011-10-16T11:37:46.000+0000-73.992740.7372-73.968340.76241
2011-10-21T08:18:49.000+00008.52011-10-21T08:18:49.000+0000-73.99038740.73118-74.002140.708052
2012-03-24T22:13:00.000+00008.12012-03-24T22:13:00.000+0000-73.99013840.740232-73.9952340.7184071
2013-12-09T09:16:00.000+00005.02013-12-09T09:16:00.000+0000-73.98061740.74487-73.9871140.7495775
2009-01-16T05:58:00.000+00005.32009-01-16T05:58:00.000+0000-73.9920140.755538-73.9979640.7559955
2010-04-21T13:39:00.000+00005.32010-04-21T13:39:00.000+0000-73.98832340.722913-74.00231540.7295721
2011-07-01T08:24:00.000+00006.92011-07-01T08:24:00.000+0000-73.98262840.771032-73.98412740.7480622
2014-10-21T07:04:06.000+00008.52014-10-21T07:04:06.000+0000-73.94840340.78258-73.96890540.7876751
2012-07-02T08:43:33.000+00006.52012-07-02T08:43:33.000+0000-73.97525640.756147-73.96054340.7755091
2012-09-15T02:17:00.000+000029.02012-09-15T02:17:00.000+0000-74.0032440.733577-73.9485540.7233421
2014-01-29T22:41:00.000+000021.02014-01-29T22:41:00.000+0000-73.97855340.766717-74.01619540.7110526
2009-01-02T10:13:46.000+000014.52009-01-02T10:13:46.000+0000-73.94704340.780107-73.98903440.7515872
2009-09-12T10:56:00.000+000032.92009-09-12T10:56:00.000+0000-73.98276240.769003-73.8726240.7745331
2011-05-17T07:53:19.000+00006.12011-05-17T07:53:19.000+0000-73.97829240.782962-73.96108540.8066841
2013-11-07T10:19:35.000+000013.02013-11-07T10:19:35.000+0000-73.98580240.777477-73.98741440.7543691
2014-07-11T12:24:43.000+000015.02014-07-11T12:24:43.000+0000-73.994240.751005-73.9755940.7591881
2010-02-03T14:33:29.000+00004.92010-02-03T14:33:29.000+0000-73.96884840.759129-73.97611840.7657471
2010-11-11T21:18:00.000+00008.92010-11-11T21:18:00.000+0000-73.98187240.760252-74.00223240.7405675
2012-04-05T20:19:03.000+00008.12012-04-05T20:19:03.000+0000-73.99312740.736777-74.01069940.7201161
2013-04-30T16:25:36.000+00006.02013-04-30T16:25:36.000+0000-73.98657540.75505-73.98097140.7658571
2014-05-12T23:31:00.000+000057.332014-05-12T23:31:00.000+0000-73.7902540.643705-74.0022740.7345421
2014-05-20T13:15:00.000+00008.02014-05-20T13:15:00.000+0000-73.97429240.793455-73.97820540.7782721
2009-11-28T17:12:00.000+00008.52009-11-28T17:12:00.000+0000-73.95993740.780397-73.97494840.7981931
2010-01-31T15:21:08.000+00008.92010-01-31T15:21:08.000+0000-73.97606140.75818-73.94843640.782551
2010-08-06T09:29:00.000+000010.52010-08-06T09:29:00.000+0000-73.9650140.769925-73.96812540.7780485
2010-09-08T15:14:00.000+000010.12010-09-08T15:14:00.000+0000-74.01034740.720153-73.9949240.7690322
2011-11-15T13:07:50.000+000049.82011-11-15T13:07:50.000+0000-73.98385140.761851-73.78312940.6437853
2015-02-01T17:24:59.000+00005.02015-02-01T17:24:59.000+0000-73.9837112426757840.74961853027344-73.9926147460937540.742866516113281
2015-02-16T17:12:44.000+00006.02015-02-16T17:12:44.000+0000-73.957618713378940.76677322387695-73.9558258056640640.778766632080081
2010-02-26T23:56:00.000+000013.32010-02-26T23:56:00.000+0000-73.9977140.756485-73.98751840.7213371
2015-04-09T07:20:46.000+00007.02015-04-09T07:20:46.000+0000-73.978347778320340.76491165161133-73.9835281372070240.768108367919921
2012-03-28T13:09:20.000+000010.52012-03-28T13:09:20.000+0000-73.99973340.73322-73.98565940.7591562
2012-12-21T13:10:00.000+000056.82012-12-21T13:10:00.000+0000-73.97881740.761517-73.78925540.6426771
2013-12-04T18:13:00.000+000014.52013-12-04T18:13:00.000+0000-73.98404540.748432-74.00975840.7226951
2010-11-25T22:54:00.000+000011.32010-11-25T22:54:00.000+0000-74.00544840.725823-74.00594240.7250482
2011-01-14T17:22:12.000+00006.52011-01-14T17:22:12.000+0000-73.97079940.751642-73.98033340.7483031
2011-06-02T14:04:00.000+00005.72011-06-02T14:04:00.000+0000-73.9917140.731902-73.9790740.7452131
2013-05-02T01:22:00.000+000013.02013-05-02T01:22:00.000+0000-73.96140740.716362-73.99424240.6948471
2014-07-03T01:34:00.000+000022.02014-07-03T01:34:00.000+0000-73.96808740.75514-73.95262240.8233125
2011-11-10T00:09:07.000+000018.52011-11-10T00:09:07.000+0000-73.98099240.744531-73.94847840.7780861
2012-06-17T18:08:12.000+000014.12012-06-17T18:08:12.000+0000-73.95731240.776963-73.99040840.7512712
2010-01-09T21:28:55.000+00004.52010-01-09T21:28:55.000+0000-73.95280440.782491-73.96103840.7749782
2014-07-20T11:49:33.000+000024.02014-07-20T11:49:33.000+0000-73.87448340.774095-73.96709840.7116031
2010-01-16T13:58:13.000+000025.72010-01-16T13:58:13.000+0000-73.97995240.726656-73.95191440.8130411
2011-08-30T10:09:03.000+00003.32011-08-30T10:09:03.000+0000-73.99808240.741128-73.99390940.7393921
2012-03-26T05:47:15.000+00008.52012-03-26T05:47:15.000+0000-73.95435340.779059-73.98552540.7553131
2010-07-31T22:00:38.000+00005.32010-07-31T22:00:38.000+0000-74.00319240.732796-73.99988140.7192271
2011-06-12T01:48:00.000+00004.52011-06-12T01:48:00.000+0000-73.98244240.742135-73.99249540.7382781
2009-01-11T22:50:00.000+00003.72009-01-11T22:50:00.000+0000-73.98712740.733377-73.98135540.741252
2011-07-26T11:56:41.000+00008.12011-07-26T11:56:41.000+0000-73.97680940.775044-73.96797640.7628071
2010-08-03T14:58:00.000+000016.12010-08-03T14:58:00.000+0000-74.0046140.716322-74.00373240.6584282
2011-05-22T00:30:32.000+000012.92011-05-22T00:30:32.000+0000-73.97974640.781009-73.98052340.7382721
2011-08-20T13:40:33.000+00008.12011-08-20T13:40:33.000+0000-73.98939340.726381-73.99741740.7143652
2013-03-14T11:13:00.000+00009.52013-03-14T11:13:00.000+0000-73.95778840.781995-73.9626240.7647421
2014-09-02T00:02:00.000+000023.52014-09-02T00:02:00.000+0000-73.94414540.702737-73.91398540.778462
2009-02-22T22:48:00.000+00002.52009-02-22T22:48:00.000+00000.00.0-74.00543340.7266852
2009-03-28T20:05:13.000+000011.02009-03-28T20:05:13.000+0000-73.9582240.768717-73.98931440.7399681
2011-10-10T18:31:34.000+00006.12011-10-10T18:31:34.000+0000-73.98484740.761632-73.96584640.7545482
2014-07-13T11:15:00.000+000028.02014-07-13T11:15:00.000+0000-73.8709340.773787-73.96600340.7554251
2014-07-23T08:42:00.000+000010.02014-07-23T08:42:00.000+0000-73.9927640.751162-73.9809840.7528271
2009-04-03T11:58:00.000+000010.12009-04-03T11:58:00.000+0000-73.98799740.737872-73.98858340.7575251
2011-04-30T04:15:00.000+00007.72011-04-30T04:15:00.000+0000-73.98237740.739743-73.95968840.7585985
2014-03-26T22:46:23.000+00008.02014-03-26T22:46:23.000+0000-73.97624840.760885-73.99123640.7503761
2009-07-16T18:04:00.000+00006.12009-07-16T18:04:00.000+0000-73.95343240.766765-73.96844740.76491
2012-09-13T11:31:00.000+000020.52012-09-13T11:31:00.000+0000-73.9864640.751527-73.95373240.7877251
2013-11-19T10:38:00.000+00009.52013-11-19T10:38:00.000+0000-74.00319740.744075-74.0006740.7260621
2014-02-14T05:55:36.000+00007.02014-02-14T05:55:36.000+0000-73.9589340.763626-73.97375340.7598131
2011-07-13T07:32:00.000+00008.52011-07-13T07:32:00.000+0000-73.9873240.738957-74.00445840.7073221
2014-05-30T21:44:34.000+00007.52014-05-30T21:44:34.000+0000-73.96412740.792641-73.97998440.7820372
2015-06-22T19:04:41.000+000011.52015-06-22T19:04:41.000+0000-73.9574432373046740.76170349121094-73.9732360839843840.787078857421881
2010-04-29T08:27:00.000+00007.72010-04-29T08:27:00.000+0000-73.99841840.735472-74.0143240.7130721
2011-12-14T20:47:00.000+00006.12011-12-14T20:47:00.000+0000-73.97819240.745775-73.97542240.730072
2012-09-02T23:09:00.000+000038.52012-09-02T23:09:00.000+0000-73.97747340.746538-73.85140540.6894732
2015-05-28T11:56:51.000+000011.52015-05-28T11:56:51.000+0000-73.981956481933640.76792144775391-73.9760894775390640.7951889038085942
2012-09-24T23:07:15.000+00006.02012-09-24T23:07:15.000+0000-73.98091440.779513-73.97052440.7967031
2013-05-02T18:59:25.000+000017.02013-05-02T18:59:25.000+0000-74.01636140.712852-73.98436440.7295311
2014-08-15T21:24:00.000+00007.52014-08-15T21:24:00.000+0000-73.98847740.739202-74.00181240.7405821
2015-05-16T11:33:57.000+00005.52015-05-16T11:33:57.000+0000-73.9736175537109440.78464126586913-73.9704513549804840.7961196899414061
2011-03-20T17:25:00.000+00006.92011-03-20T17:25:00.000+0000-73.97960540.752025-73.99374240.7566851
2013-02-15T12:13:00.000+00003.02013-02-15T12:13:00.000+0000-73.99431340.735362-73.99721240.736811
2014-03-03T19:03:42.000+000012.52014-03-03T19:03:42.000+0000-73.99888140.734511-73.97134140.7609291
2009-03-16T04:47:17.000+000017.02009-03-16T04:47:17.000+00000.00.00.00.01
2012-11-30T11:02:00.000+000038.82012-11-30T11:02:00.000+0000-73.9746240.756922-73.86400240.7678721
2013-03-10T04:12:00.000+00006.02013-03-10T04:12:00.000+0000-74.00040540.71857-74.0000440.7265921
2014-06-18T07:38:20.000+00006.52014-06-18T07:38:20.000+0000-73.98069540.742047-73.9729340.7590061
2014-08-01T01:59:00.000+000014.52014-08-01T01:59:00.000+0000-73.97756740.778957-73.99127240.727821
2010-01-19T01:10:00.000+00002.52010-01-19T01:10:00.000+0000-73.9987240.624708-73.9987240.6247081
2009-04-10T17:32:00.000+00004.12009-04-10T17:32:00.000+0000-73.99396240.735152-74.0035840.7322071
2010-08-21T14:22:57.000+000013.32010-08-21T14:22:57.000+0000-74.00575240.717735-73.96263940.7669522
2012-12-08T23:27:00.000+00006.02012-12-08T23:27:00.000+0000-74.00350240.738745-73.99331740.7520223
2013-01-16T16:40:00.000+00006.52013-01-16T16:40:00.000+0000-73.98743740.738262-73.97586540.745941
2013-03-25T11:32:32.000+000012.52013-03-25T11:32:32.000+0000-74.00654540.716519-73.99342740.7523081
2014-05-09T12:55:00.000+000021.52014-05-09T12:55:00.000+0000-73.96574740.77121-74.00518840.7291571
2010-10-23T18:39:00.000+000049.572010-10-23T18:39:00.000+0000-73.78221540.644272-73.78221740.644272
2010-11-13T04:38:00.000+000038.12010-11-13T04:38:00.000+0000-74.0076140.725875-73.86739340.8592751
2011-07-10T02:08:08.000+000010.12011-07-10T02:08:08.000+0000-73.99302740.725563-73.95859140.7170691
2010-04-28T18:58:00.000+00004.52010-04-28T18:58:00.000+0000-73.96690240.76209-73.97265840.7610981
2011-12-17T13:53:00.000+00005.32011-12-17T13:53:00.000+0000-73.98788540.749152-73.97516540.7590953
2013-10-31T23:44:00.000+00008.02013-10-31T23:44:00.000+0000-74.00497840.719012-74.00680740.7068321
2009-07-30T21:24:21.000+00007.72009-07-30T21:24:21.000+0000-73.99955640.738662-73.97940940.7276031
2012-10-01T09:02:00.000+00007.52012-10-01T09:02:00.000+0000-73.98671740.76152-73.96867540.7966622
2015-03-17T13:30:23.000+00005.52015-03-17T13:30:23.000+0000-73.9562225341796740.78130722045898-73.9595108032226640.776550292968751
2009-03-01T18:37:49.000+00007.72009-03-01T18:37:49.000+0000-73.99763140.724238-74.00919640.7108691
2010-02-12T21:30:03.000+00008.12010-02-12T21:30:03.000+0000-73.97889440.763859-73.94694740.7796571
2014-07-12T13:17:34.000+00005.52014-07-12T13:17:34.000+0000-73.97699540.763962-73.97803340.7574891
2015-06-13T07:19:10.000+00006.52015-06-13T07:19:10.000+0000-73.9819412231445340.74060821533203-73.9911804199218840.748908996582031
2013-08-06T23:24:46.000+00004.52013-08-06T23:24:46.000+0000-73.9975840.729132-73.99199840.7252261
2013-09-24T18:23:52.000+00007.02013-09-24T18:23:52.000+0000-73.94554240.774462-73.95745240.7830081
2014-02-19T12:48:00.000+000017.52014-02-19T12:48:00.000+0000-73.96175740.76281-73.99932840.74931
2011-02-13T14:48:57.000+00004.92011-02-13T14:48:57.000+0000-73.9649840.759943-73.97115440.7642522
2013-06-01T12:53:00.000+00006.02013-06-01T12:53:00.000+0000-73.96396740.808232-73.97269340.7934551
2010-03-11T20:59:00.000+00004.52010-03-11T20:59:00.000+0000-73.9930340.762935-73.9905940.7576435
2014-09-22T11:58:00.000+000010.52014-09-22T11:58:00.000+0000-73.9724840.784842-73.95474740.7756621
2010-02-17T22:51:00.000+00008.92010-02-17T22:51:00.000+0000-74.00579840.741247-74.0171940.7051871
2010-02-28T16:56:00.000+00006.12010-02-28T16:56:00.000+0000-74.0018640.737772-74.00976340.7147955
2010-08-07T13:46:00.000+000014.52010-08-07T13:46:00.000+0000-74.00228540.73961-73.95275740.7796371
2010-10-23T12:11:31.000+00006.12010-10-23T12:11:31.000+0000-73.99365640.74735-73.98286440.7426362
2012-03-15T23:48:00.000+00005.72012-03-15T23:48:00.000+0000-73.95432740.764005-73.95615540.7759671
2013-01-13T13:38:00.000+00008.02013-01-13T13:38:00.000+0000-73.98964740.74729-73.98564840.7354085
2013-05-25T15:46:29.000+00005.52013-05-25T15:46:29.000+0000-73.96330740.798379-73.9750440.782781
2014-09-10T12:09:01.000+000052.02014-09-10T12:09:01.000+0000-73.98572240.749696-73.97357740.749011
2011-04-18T11:58:00.000+000049.82011-04-18T11:58:00.000+0000-73.97282240.793295-73.78286240.643952
2012-04-22T17:10:00.000+000049.82012-04-22T17:10:00.000+0000-73.9540340.74158-73.99552740.7429621
2013-10-29T01:09:14.000+000016.02013-10-29T01:09:14.000+00000.00.00.00.01
2014-07-07T13:52:00.000+000016.52014-07-07T13:52:00.000+0000-73.97996240.759952-73.9946740.7236621
2009-12-29T14:23:00.000+00004.52009-12-29T14:23:00.000+00000.00.00.00.01
2010-04-16T17:02:00.000+000011.32010-04-16T17:02:00.000+0000-73.97241240.78123-73.98918740.7583755
2012-11-10T12:37:00.000+000010.02012-11-10T12:37:00.000+0000-73.94707340.779932-73.9679940.7656422
2012-11-11T03:12:00.000+000016.52012-11-11T03:12:00.000+0000-74.00381540.743057-73.94887740.7782771
2009-09-13T12:47:43.000+00008.92009-09-13T12:47:43.000+0000-73.99643940.725517-73.97637540.7516342
2011-02-22T13:35:00.000+00006.92011-02-22T13:35:00.000+0000-73.97163840.763382-73.95376740.7837151
2013-01-22T23:26:29.000+00005.02013-01-22T23:26:29.000+0000-73.92115540.766861-73.91318140.7651841
2014-06-01T02:24:00.000+00004.02014-06-01T02:24:00.000+0000-73.99199240.714875-73.99717340.7144121
2009-03-18T09:02:00.000+00005.72009-03-18T09:02:00.000+0000-73.97765540.748835-73.99191540.7542231
2011-04-22T09:02:09.000+00002.92011-04-22T09:02:09.000+0000-73.96477440.772788-73.96326640.7747521
2012-10-17T05:35:00.000+000052.02012-10-17T05:35:00.000+0000-73.78998540.646382-74.0349740.6114551
2013-07-21T11:22:00.000+000010.52013-07-21T11:22:00.000+0000-73.95974240.773777-73.98817740.7487721
2013-08-05T15:08:42.000+000038.832013-08-05T15:08:42.000+0000-73.9788140.764147-73.8653540.7707323
2013-09-17T21:21:00.000+00004.52013-09-17T21:21:00.000+0000-74.00012540.747762-74.00555740.738715
2014-10-25T02:16:35.000+00007.02014-10-25T02:16:35.000+0000-73.99231840.724933-73.98110140.7419541
2010-02-03T20:51:29.000+000012.92010-02-03T20:51:29.000+0000-73.95419140.764029-73.91804340.7668761
2011-03-20T21:39:21.000+00007.32011-03-20T21:39:21.000+0000-73.97827940.724843-74.0027740.7236742
2011-04-08T23:29:49.000+00004.92011-04-08T23:29:49.000+0000-73.98512540.74187-73.99626940.7379781
2013-04-22T10:52:53.000+00005.52013-04-22T10:52:53.000+0000-73.98375240.737981-73.97504240.7488341
2013-07-31T10:49:00.000+000013.52013-07-31T10:49:00.000+0000-73.96330540.757785-73.94584240.7817221
2014-05-01T14:20:00.000+000022.02014-05-01T14:20:00.000+0000-74.01684740.704765-73.97560740.7489651
2014-08-05T20:46:20.000+000011.02014-08-05T20:46:20.000+0000-73.87320740.774149-73.92029940.7640461
2009-01-29T20:49:03.000+00005.02009-01-29T20:49:03.000+0000-73.99541440.733265-73.99147140.7276191
2010-12-24T19:14:07.000+00009.72010-12-24T19:14:07.000+0000-74.00816340.73873-73.990340.7672051
2012-01-28T21:33:18.000+00004.92012-01-28T21:33:18.000+0000-73.95532240.78284-73.95579740.7736730
2013-04-19T23:05:47.000+00009.52013-04-19T23:05:47.000+0000-74.00461440.724284-73.97755340.7464681
2014-10-08T06:49:18.000+00006.52014-10-08T06:49:18.000+00000.00.00.00.01
2015-06-16T14:28:22.000+00008.52015-06-16T14:28:22.000+0000-73.9566497802734440.77500915527344-73.9667892456054740.767082214355466
2012-09-21T14:04:49.000+00005.52012-09-21T14:04:49.000+0000-73.9810140.78174-73.98922540.776221
2014-06-17T22:48:00.000+000010.52014-06-17T22:48:00.000+0000-73.97801540.759927-73.95600540.7681421
2009-01-06T22:30:00.000+00004.52009-01-06T22:30:00.000+0000-73.99896540.73831-73.99716240.7470272
2009-12-31T22:27:00.000+00004.92009-12-31T22:27:00.000+0000-73.99695840.722988-74.00580740.7263835
2010-07-02T16:58:45.000+00007.32010-07-02T16:58:45.000+0000-73.97832140.753844-73.98230940.7770371
2011-02-02T07:52:21.000+00005.32011-02-02T07:52:21.000+0000-74.00692440.703967-74.01299540.7057421
2011-02-04T18:43:06.000+000014.12011-02-04T18:43:06.000+0000-74.00360540.720436-73.98576640.7598371
2014-06-02T08:31:14.000+00006.52014-06-02T08:31:14.000+0000-73.96641840.770348-73.95552840.765831
2010-03-25T10:20:00.000+00003.72010-03-25T10:20:00.000+0000-73.99444840.690077-73.98864340.6935653
2012-02-24T18:44:00.000+000011.72012-02-24T18:44:00.000+0000-73.95399640.770532-73.98659440.7423541
2014-01-04T21:11:00.000+00009.02014-01-04T21:11:00.000+0000-73.9776440.752347-73.97039240.7688672
2009-04-08T08:52:00.000+000010.12009-04-08T08:52:00.000+0000-73.97435340.763542-73.99012840.7322371
2012-02-17T08:14:00.000+000049.82012-02-17T08:14:00.000+0000-73.78812740.647295-73.97895740.7563055
2012-04-18T19:08:00.000+00008.12012-04-18T19:08:00.000+0000-74.00033840.717538-74.0077140.7052131
2009-05-11T08:16:13.000+00007.32009-05-11T08:16:13.000+0000-73.96841240.786347-73.95228540.7898191
2011-05-16T23:10:43.000+00005.72011-05-16T23:10:43.000+0000-73.98479740.763133-73.97592840.7652762
2011-12-03T20:56:00.000+000010.52011-12-03T20:56:00.000+0000-74.00197240.734998-73.98149840.7437421
2012-03-23T19:13:00.000+00008.12012-03-23T19:13:00.000+0000-73.96256340.79985-73.9841940.7701725
2012-09-19T09:22:56.000+000028.52012-09-19T09:22:56.000+0000-73.95282740.772524-74.00028740.758571
2010-04-16T19:12:00.000+000014.92010-04-16T19:12:00.000+0000-73.98268240.775085-74.0073140.7412282
2011-10-25T14:19:00.000+000013.72011-10-25T14:19:00.000+0000-73.96430740.773437-73.98990240.7359771
2012-03-16T18:02:35.000+00007.32012-03-16T18:02:35.000+0000-73.98159640.769859-73.974640.7605041
2014-03-28T07:03:26.000+00005.52014-03-28T07:03:26.000+0000-73.96858940.75909-73.9767340.7591611
2013-12-04T08:44:06.000+000011.52013-12-04T08:44:06.000+0000-73.98206140.775128-73.97495740.7597151
2015-01-14T20:54:03.000+00008.02015-01-14T20:54:03.000+0000-73.9760208129882840.7550163269043-73.9966506958007840.763263702392581
2009-01-09T14:41:24.000+00004.92009-01-09T14:41:24.000+0000-73.95825940.768903-73.95474440.7793511
2010-04-20T21:39:00.000+00003.72010-04-20T21:39:00.000+0000-73.98780240.752183-73.98506740.7475721
2012-12-24T23:12:00.000+000013.52012-12-24T23:12:00.000+0000-73.97352240.792337-73.94200240.8227525
2011-03-01T08:53:00.000+000010.52011-03-01T08:53:00.000+0000-74.00627740.73306-73.97708840.7717651
2014-05-15T18:23:00.000+000010.02014-05-15T18:23:00.000+0000-73.96239340.778807-73.97950340.7713622
2014-08-12T03:11:51.000+000011.52014-08-12T03:11:51.000+0000-74.0040640.741953-73.97998240.7626172
2014-09-03T18:08:00.000+000016.02014-09-03T18:08:00.000+0000-74.0069640.75149-74.0005840.72111
2009-07-25T15:42:18.000+00008.92009-07-25T15:42:18.000+0000-73.95766840.77933-73.98347940.760422
2012-11-14T17:19:00.000+00004.52012-11-14T17:19:00.000+0000-73.98117740.779345-73.97362840.7896121
2014-05-04T17:30:29.000+00009.52014-05-04T17:30:29.000+0000-74.00532840.721161-73.98459540.7423481
2010-01-20T11:21:00.000+00005.32010-01-20T11:21:00.000+0000-74.01046840.703142-73.99987340.714145
2010-04-27T06:04:37.000+00004.12010-04-27T06:04:37.000+0000-73.96137340.760497-73.95416440.7640791
2011-03-03T07:40:59.000+00008.12011-03-03T07:40:59.000+0000-74.00781640.733536-73.98655640.740041
2011-12-16T08:40:00.000+000018.12011-12-16T08:40:00.000+0000-74.00767340.705285-73.97456240.7636681
2012-07-10T13:13:07.000+00009.72012-07-10T13:13:07.000+0000-73.99100340.733332-73.98699840.7477921
2012-10-22T10:43:00.000+00006.02012-10-22T10:43:00.000+0000-73.96865840.770303-73.98257840.7747021
2014-02-12T08:04:10.000+00005.02014-02-12T08:04:10.000+0000-73.96656840.795888-73.97003340.7875121
2012-01-30T13:25:00.000+00006.92012-01-30T13:25:00.000+0000-73.98395240.74928-73.9777840.7378782
2014-04-25T19:37:49.000+000014.52014-04-25T19:37:49.000+0000-73.9798740.765709-74.00138940.7363091
2009-11-07T14:13:00.000+000014.12009-11-07T14:13:00.000+0000-74.01000540.771582-74.00384540.759821
2012-08-15T21:23:38.000+00006.92012-08-15T21:23:38.000+0000-74.00266740.734013-73.98827740.723341
2013-10-05T20:24:51.000+000016.02013-10-05T20:24:51.000+0000-73.79411640.657058-73.79413240.6570391
2015-06-22T01:54:24.000+00006.52015-06-22T01:54:24.000+0000-74.0000762939453140.72861099243164-73.9887313842773440.722171783447276
2010-09-07T02:25:00.000+00003.32010-09-07T02:25:00.000+0000-73.98218840.776687-73.97464740.7840251
2011-06-13T10:59:34.000+00006.52011-06-13T10:59:34.000+0000-73.97650440.757149-73.98853740.7593872
2013-04-11T09:14:00.000+00005.02013-04-11T09:14:00.000+0000-73.9929240.737055-74.00156240.7384122
2011-07-16T06:12:00.000+00006.12011-07-16T06:12:00.000+0000-73.99972840.733533-73.98465740.7559131
2014-11-18T09:19:00.000+000057.332014-11-18T09:19:00.000+0000-73.7767240.645412-73.97883240.7749321
2009-11-26T18:36:00.000+00005.32009-11-26T18:36:00.000+0000-73.9771240.759838-73.98187540.7453381
2011-04-08T17:25:13.000+000010.92011-04-08T17:25:13.000+0000-73.99233240.748792-73.96637440.7600993
2011-11-12T02:04:04.000+00004.12011-11-12T02:04:04.000+0000-73.99225340.763919-73.9912340.7577651
2012-04-30T19:19:00.000+000011.32012-04-30T19:19:00.000+0000-73.96954840.800192-73.97999340.764635
2013-09-25T14:47:00.000+00005.52013-09-25T14:47:00.000+0000-74.00363740.747477-73.9998940.7406521
2014-01-17T22:33:39.000+000010.02014-01-17T22:33:39.000+0000-73.98423540.75501-73.95542540.7810941
2014-08-05T16:40:00.000+00004.02014-08-05T16:40:00.000+0000-73.95476740.78389-73.95895840.7809051
2009-01-10T16:28:00.000+00002.92009-01-10T16:28:00.000+0000-73.97741740.757653-73.97460740.7567571
2011-01-08T16:35:00.000+00006.92011-01-08T16:35:00.000+0000-73.96632740.761268-73.9829440.7767951
2011-04-20T22:47:00.000+00008.92011-04-20T22:47:00.000+0000-73.9891340.756668-73.9610740.7572252
2013-01-21T19:08:58.000+00004.52013-01-21T19:08:58.000+0000-73.99090940.739949-73.99385640.7327221
2013-09-13T11:44:00.000+00004.52013-09-13T11:44:00.000+0000-73.96503740.761717-73.96807740.7630425
2011-11-05T23:43:58.000+000012.92011-11-05T23:43:58.000+0000-73.96676940.76412-73.9649740.8066191
2010-06-26T08:49:46.000+00005.32010-06-26T08:49:46.000+0000-73.97709240.776832-73.98598340.7626422
2010-07-06T17:09:32.000+00006.92010-07-06T17:09:32.000+0000-73.98825440.74895-73.9870540.7336781
2010-09-30T07:56:00.000+000016.12010-09-30T07:56:00.000+0000-73.98658540.725585-73.93691340.7939675
2011-11-23T17:58:00.000+000026.92011-11-23T17:58:00.000+0000-73.87455840.774082-73.9639440.766011
2013-02-15T17:36:00.000+00006.02013-02-15T17:36:00.000+0000-74.00241740.728325-73.99186340.7442821
2014-06-30T11:26:37.000+00006.02014-06-30T11:26:37.000+0000-73.99563540.744387-74.00232540.7304061
2014-10-11T19:30:26.000+000014.52014-10-11T19:30:26.000+0000-73.98522140.763296-73.9655740.7604942
2011-05-09T22:27:35.000+00003.32011-05-09T22:27:35.000+0000-74.00428740.72194-73.99859940.7229391
2011-06-21T19:47:46.000+00009.72011-06-21T19:47:46.000+0000-73.99703240.722398-73.9843340.7543941
2012-07-29T15:27:45.000+00004.52012-07-29T15:27:45.000+0000-73.97709240.75848-73.96800840.7622972
2012-11-12T17:59:46.000+000015.52012-11-12T17:59:46.000+0000-73.96451740.767404-74.00349640.7410951
2014-07-09T14:51:00.000+000015.52014-07-09T14:51:00.000+0000-73.97565540.792012-73.95177540.7695271
2015-03-14T22:19:01.000+000014.02015-03-14T22:19:01.000+0000-73.9487762451171940.782493591308594-73.982200622558640.756610870361332
2009-09-19T10:34:41.000+000066.32009-09-19T10:34:41.000+0000-74.43823340.99326-74.18599640.6938742
2010-10-07T21:09:35.000+000014.12010-10-07T21:09:35.000+0000-74.00354540.707399-73.98131240.7500711
2010-11-04T17:49:53.000+000018.52010-11-04T17:49:53.000+0000-73.98711840.73596-73.9564140.7809022
2011-04-15T18:55:48.000+000012.12011-04-15T18:55:48.000+0000-73.98342340.7613-74.00949340.747751
2012-03-02T13:13:00.000+000011.72012-03-02T13:13:00.000+0000-73.9666940.765072-73.97824340.7919571
2012-11-24T09:59:00.000+00003.52012-11-24T09:59:00.000+0000-73.97093240.788492-73.97383540.792041
2014-09-05T00:48:01.000+000010.52014-09-05T00:48:01.000+0000-74.0034440.743554-73.97404240.7502743
2014-04-07T07:41:50.000+000020.52014-04-07T07:41:50.000+0000-74.01606440.711575-73.98333940.7609791
2009-08-25T01:50:21.000+00002.52009-08-25T01:50:21.000+0000-73.9864140.76335-73.9864140.763351
2013-04-17T18:27:15.000+000021.02013-04-17T18:27:15.000+0000-73.97720840.733786-73.97823840.6866171
2014-09-29T14:34:00.000+00009.52014-09-29T14:34:00.000+0000-73.96997740.765472-73.9573440.7830726
2010-08-18T03:46:00.000+000013.32010-08-18T03:46:00.000+00000.00.00.00.05
2010-12-24T22:34:00.000+00008.92010-12-24T22:34:00.000+0000-73.97846540.758843-74.00495240.7374952
2011-06-30T08:08:14.000+000010.52011-06-30T08:08:14.000+0000-73.95905540.814999-73.95787840.7786071
2013-03-11T09:42:26.000+00004.52013-03-11T09:42:26.000+0000-74.00864640.735048-74.00622940.7259491
2014-10-07T15:02:06.000+000024.52014-10-07T15:02:06.000+0000-73.97926940.761886-74.00207640.7247021
2015-04-05T00:54:56.000+000027.02015-04-05T00:54:56.000+0000-73.9875564575195340.733673095703125-73.9506835937540.8230667114257741
2011-07-15T11:49:00.000+00008.52011-07-15T11:49:00.000+0000-73.97813540.73074-73.97718840.7525421
2014-06-25T23:08:56.000+00009.02014-06-25T23:08:56.000+0000-73.97786540.784274-73.96236240.7671252
2014-10-30T23:19:00.000+00009.52014-10-30T23:19:00.000+0000-73.95283840.786623-73.95786540.7654581
2010-06-15T15:07:00.000+00006.52010-06-15T15:07:00.000+0000-73.95888240.709567-73.9852740.7186431
2012-01-08T02:10:00.000+000019.72012-01-08T02:10:00.000+0000-73.98712240.73655-73.90265740.7690432
2012-08-30T18:17:13.000+000030.92012-08-30T18:17:13.000+0000-73.97843840.737-73.86484240.7703932
2013-07-29T22:19:22.000+00008.52013-07-29T22:19:22.000+0000-73.98324640.750915-74.00603240.7352151
2009-09-27T06:48:00.000+00006.52009-09-27T06:48:00.000+0000-73.99401740.761638-73.98584540.7443871
2010-05-07T20:05:00.000+000014.92010-05-07T20:05:00.000+0000-73.96821240.762212-73.91995840.7550872
2012-03-21T05:27:08.000+000016.12012-03-21T05:27:08.000+0000-73.97035740.789113-74.01169540.7074351
2013-04-12T19:57:22.000+00005.52013-04-12T19:57:22.000+0000-73.78920340.655194-73.99650940.7372161
2013-09-19T23:58:08.000+000020.52013-09-19T23:58:08.000+0000-73.98981340.747356-73.92714740.7627321
2012-02-27T07:24:20.000+00006.52012-02-27T07:24:20.000+0000-73.98339740.738183-73.97139540.7580230
2013-09-13T07:03:17.000+00005.02013-09-13T07:03:17.000+0000-73.97748740.763365-73.98337740.75471
2014-01-04T08:43:24.000+00005.02014-01-04T08:43:24.000+0000-73.9857340.7681-73.98144440.7787451
2014-04-21T13:33:03.000+000016.52014-04-21T13:33:03.000+0000-74.00660240.744235-73.97925140.7512361
2015-02-28T07:50:05.000+000016.02015-02-28T07:50:05.000+0000-73.9517440795898440.77205657958984-73.9426574707031240.747135162353525
2010-08-08T13:12:13.000+000010.92010-08-08T13:12:13.000+0000-73.97738540.758089-74.00146740.7200594
2012-02-21T12:13:11.000+000016.52012-02-21T12:13:11.000+0000-74.01089440.714426-73.9833740.7562481
2013-07-27T23:20:00.000+000020.52013-07-27T23:20:00.000+0000-73.9844140.716667-73.92223840.7672876
2011-12-02T19:50:13.000+00007.32011-12-02T19:50:13.000+0000-73.959440.7703-73.966340.76061
2015-06-27T22:06:57.000+00009.02015-06-27T22:06:57.000+0000-73.9938430786132840.714691162109375-73.997070312540.717731475830083
2014-03-14T00:05:00.000+000015.52014-03-14T00:05:00.000+0000-73.99750740.721777-74.00073240.6763751
2014-08-19T16:52:48.000+00005.02014-08-19T16:52:48.000+0000-73.99508740.760146-73.98221540.7631851
2014-09-30T16:13:00.000+000057.332014-09-30T16:13:00.000+0000-74.0077540.741277-73.79029240.646762
2009-07-07T00:19:38.000+000010.52009-07-07T00:19:38.000+0000-73.97998240.762695-73.96255740.8046851
2013-08-02T20:12:13.000+00009.52013-08-02T20:12:13.000+0000-74.00811740.748635-74.0103740.7189683
2009-03-30T10:56:00.000+00004.12009-03-30T10:56:00.000+0000-73.9909340.765603-73.98256340.770271
2011-12-01T15:38:24.000+000012.12011-12-01T15:38:24.000+0000-73.95954640.767462-73.99310740.757672
2013-11-24T20:54:00.000+00007.02013-11-24T20:54:00.000+0000-73.97154240.750487-73.98896740.729941
2010-04-15T21:12:39.000+00004.92010-04-15T21:12:39.000+0000-73.97855640.724624-73.98815740.7228751
2010-12-08T08:14:00.000+00004.92010-12-08T08:14:00.000+0000-73.97930740.752832-73.97840340.7589031
2013-05-15T16:56:45.000+000011.02013-05-15T16:56:45.000+0000-73.97965840.758764-73.9565740.7681081
2013-07-11T21:10:00.000+00005.52013-07-11T21:10:00.000+0000-73.97800740.74581-73.9842540.733412
2013-07-31T09:31:00.000+00007.02013-07-31T09:31:00.000+0000-73.989440.756855-73.99280240.7682221
2010-03-22T14:59:45.000+00003.72010-03-22T14:59:45.000+0000-73.96135340.765069-73.9605240.7699311
2011-12-21T21:40:17.000+00006.52011-12-21T21:40:17.000+0000-74.009840.7205-74.00940.74084
2012-05-21T11:37:42.000+000015.32012-05-21T11:37:42.000+0000-73.9921740.76432-73.96621440.7625621
2014-08-21T12:40:24.000+000038.332014-08-21T12:40:24.000+0000-73.97715140.776857-73.86155140.7682741
2012-10-10T12:40:54.000+00006.52012-10-10T12:40:54.000+0000-73.98075940.680705-73.98981340.6901491
2013-01-04T17:06:26.000+000017.02013-01-04T17:06:26.000+0000-74.00131140.75699-73.94880140.7970081
2009-11-12T08:33:00.000+000010.12009-11-12T08:33:00.000+0000-74.0009640.731835-73.97434240.7510581
2011-02-16T12:02:00.000+000018.92011-02-16T12:02:00.000+0000-74.01016340.708902-73.98784740.7492255
2012-07-09T07:54:34.000+000038.52012-07-09T07:54:34.000+0000-73.86256840.769065-74.00828740.7052751
2013-03-11T09:31:00.000+00008.52013-03-11T09:31:00.000+0000-73.98351840.748147-73.9898740.7257571
2014-11-06T23:10:00.000+00007.02014-11-06T23:10:00.000+0000-73.9717340.75715-73.9854140.7471
2014-12-13T18:37:00.000+00008.52014-12-13T18:37:00.000+0000-73.98326740.741622-74.00133740.7310721
2009-01-27T11:55:16.000+00007.72009-01-27T11:55:16.000+0000-73.99119740.751257-73.97517840.7506871
2010-12-03T22:08:47.000+00005.72010-12-03T22:08:47.000+0000-74.002940.760422-73.98872940.7617022
2013-12-14T02:04:00.000+00004.52013-12-14T02:04:00.000+0000-73.9838440.72957-73.98973740.7257552
2012-03-12T06:57:20.000+00007.72012-03-12T06:57:20.000+0000-73.95778840.761912-73.97675740.752141
2013-01-17T23:42:16.000+000045.02013-01-17T23:42:16.000+0000-73.99908140.754489-73.86340140.6676131
2013-05-25T02:42:55.000+00008.02013-05-25T02:42:55.000+0000-73.9956340.720941-73.96168940.7097432
2009-08-26T15:59:53.000+00004.52009-08-26T15:59:53.000+0000-73.99131540.751183-74.00363740.7535841
2012-01-18T13:52:00.000+00005.72012-01-18T13:52:00.000+0000-73.97861740.748468-73.97588540.755052
2010-04-17T23:43:40.000+00009.72010-04-17T23:43:40.000+0000-74.00209740.734732-73.97233540.7564772
2010-10-31T01:12:41.000+000010.92010-10-31T01:12:41.000+0000-74.00577140.736004-73.98939640.7180131
2010-11-10T16:44:00.000+00005.72010-11-10T16:44:00.000+0000-74.0072240.727557-73.99468240.7502421
2014-01-18T23:03:00.000+00004.02014-01-18T23:03:00.000+0000-74.00543240.736957-73.9986440.7449971
2009-08-20T13:25:00.000+00004.92009-08-20T13:25:00.000+0000-73.98989740.750725-73.98895240.7553453
2009-10-01T06:43:42.000+000031.22009-10-01T06:43:42.000+0000-73.97542740.757116-73.8650940.7705611
2009-10-06T18:24:14.000+000013.32009-10-06T18:24:14.000+0000-73.98769940.757444-73.99664440.7195421
2010-02-13T01:52:11.000+000011.72010-02-13T01:52:11.000+00000.00.00.00.01
2011-05-09T13:06:40.000+00008.92011-05-09T13:06:40.000+0000-74.00855740.72074-73.98133840.7289841
2012-07-22T16:36:14.000+00004.52012-07-22T16:36:14.000+0000-73.92638340.808057-73.9351340.8143711
2012-09-08T05:19:00.000+000020.02012-09-08T05:19:00.000+0000-73.99622240.738397-73.94593340.7926822
2015-03-01T02:08:36.000+00007.02015-03-01T02:08:36.000+0000-73.986427307128940.72238540649414-73.9915161132812540.7352333068847661
2009-03-18T19:47:00.000+00004.52009-03-18T19:47:00.000+0000-73.99589240.74389-74.00437740.7349335
2012-09-10T14:39:00.000+000016.52012-09-10T14:39:00.000+0000-73.98852240.737147-73.98640840.7768321
2011-11-01T09:52:40.000+000012.92011-11-01T09:52:40.000+0000-73.98138440.780106-73.97135340.7587631
2012-04-20T15:36:33.000+000034.12012-04-20T15:36:33.000+0000-73.87325440.773999-73.98353640.7629021
2014-08-11T19:37:00.000+000057.332014-08-11T19:37:00.000+0000-73.77647740.64629-73.77647740.646292
2010-06-15T01:06:00.000+00008.92010-06-15T01:06:00.000+0000-73.78849840.65458-73.75277240.66171
2014-02-07T22:43:37.000+000013.02014-02-07T22:43:37.000+0000-73.98571740.767798-73.95925340.809191
2012-03-29T18:39:00.000+00009.72012-03-29T18:39:00.000+0000-73.9801140.75182-73.95090740.7759481
2013-01-16T19:55:00.000+000011.02013-01-16T19:55:00.000+0000-73.98705540.744762-74.00782540.7163253
2014-12-23T20:50:00.000+00005.52014-12-23T20:50:00.000+0000-73.96770540.75989-73.9562340.7680881
2011-05-05T20:30:00.000+00004.92011-05-05T20:30:00.000+0000-73.97524540.763207-73.96342840.770761
2009-08-10T18:12:00.000+00009.32009-08-10T18:12:00.000+0000-73.96655540.769955-73.9715340.744313
2010-04-16T20:35:21.000+00008.52010-04-16T20:35:21.000+0000-73.94460240.815676-73.91788840.8063131
2013-01-31T22:14:00.000+00004.52013-01-31T22:14:00.000+0000-73.98524740.727532-73.97957240.7353121
2011-10-10T07:32:00.000+000011.32011-10-10T07:32:00.000+0000-73.97409740.759455-74.00969240.7225951
2012-03-13T21:24:00.000+000013.72012-03-13T21:24:00.000+0000-73.97707840.750085-74.0144240.7169321
2012-01-06T06:51:46.000+00006.92012-01-06T06:51:46.000+0000-73.99006240.756634-73.97132740.7584451
2012-07-31T07:20:31.000+00008.12012-07-31T07:20:31.000+0000-73.91848940.754256-73.96970140.7489191
2013-01-02T21:00:00.000+000011.02013-01-02T21:00:00.000+0000-73.9742740.756035-73.9689940.7858871
2011-07-06T08:56:49.000+00006.92011-07-06T08:56:49.000+0000-73.96716940.756601-73.98045140.7565842
2013-08-27T18:55:00.000+00004.52013-08-27T18:55:00.000+0000-73.95891740.77215-73.95694240.7801822
2010-04-20T19:31:00.000+00006.12010-04-20T19:31:00.000+0000-73.98330540.748403-73.99111540.7656881
2011-01-22T23:24:00.000+00007.72011-01-22T23:24:00.000+0000-73.96902340.785718-73.99215240.7691055
2011-08-15T20:36:40.000+000012.92011-08-15T20:36:40.000+0000-73.95235140.789832-73.97233340.7450061
2012-07-05T12:23:00.000+00008.12012-07-05T12:23:00.000+0000-73.99382240.732997-73.984740.7426321
2009-10-16T22:54:39.000+000035.072009-10-16T22:54:39.000+0000-73.99461840.739409-73.93643940.6299481
2010-08-30T19:58:00.000+000012.12010-08-30T19:58:00.000+0000-73.99786840.713628-73.98944540.7568534
2011-08-04T18:39:50.000+00009.32011-08-04T18:39:50.000+0000-73.98120640.757788-73.99431740.7542461
2014-01-09T21:55:00.000+000021.52014-01-09T21:55:00.000+0000-74.00156240.741032-73.9586840.7193771
2011-09-18T14:41:56.000+00006.92011-09-18T14:41:56.000+0000-73.99201440.764244-73.98102440.7818592
2014-01-30T21:38:00.000+000010.02014-01-30T21:38:00.000+0000-73.98205340.77331-73.95505540.7810171
2014-09-03T15:29:00.000+00008.52014-09-03T15:29:00.000+0000-73.99911240.72521-74.00737240.7409271
2015-02-22T12:46:09.000+000026.52015-02-22T12:46:09.000+0000-74.0136184692382740.71653366088867-73.9469680786132840.7720756530761651
2010-08-08T16:47:00.000+00004.52010-08-08T16:47:00.000+0000-73.97586740.760282-73.98096540.7533685
2011-09-10T23:51:43.000+00006.92011-09-10T23:51:43.000+0000-73.98385540.744069-74.00563940.7400893
2010-03-12T13:30:00.000+00006.52010-03-12T13:30:00.000+0000-73.97311240.761903-73.95272540.7664471
2010-10-26T15:25:00.000+00004.92010-10-26T15:25:00.000+0000-73.94706240.784043-73.95119840.7720921
2011-04-24T21:06:14.000+000013.32011-04-24T21:06:14.000+0000-74.00218540.719517-73.97487640.7563214
2011-06-20T14:52:22.000+000018.52011-06-20T14:52:22.000+0000-73.99789240.724297-73.97757840.7869411
2012-11-18T15:58:00.000+00008.02012-11-18T15:58:00.000+0000-73.97276740.793497-73.95949540.7800951
2013-10-15T07:48:17.000+00005.52013-10-15T07:48:17.000+0000-73.98986340.734053-73.97985340.7444641
2012-04-19T19:11:35.000+000028.12012-04-19T19:11:35.000+0000-73.86376340.769938-74.0003240.716241
2012-04-30T14:56:33.000+00006.52012-04-30T14:56:33.000+0000-73.97655840.759555-73.98323840.7662411
2009-10-15T19:30:00.000+000012.92009-10-15T19:30:00.000+0000-73.9836240.767035-73.98572540.727761
2010-10-20T18:19:41.000+00004.12010-10-20T18:19:41.000+0000-73.9695440.760876-73.97516440.7529731
2011-02-07T08:39:21.000+000010.52011-02-07T08:39:21.000+0000-73.96499940.806719-73.95849540.7842221
2011-06-14T23:51:00.000+000012.12011-06-14T23:51:00.000+0000-73.98340340.726223-73.99910340.7617951
2011-06-22T23:45:19.000+000013.72011-06-22T23:45:19.000+0000-73.98152740.724907-73.94903840.726311
2012-06-06T15:05:32.000+000016.12012-06-06T15:05:32.000+0000-73.95494240.789074-73.98456140.7488821
2014-08-25T20:37:22.000+00003.02014-08-25T20:37:22.000+0000-74.00747240.74088-74.00895940.7382341
2010-12-15T22:18:27.000+00008.52010-12-15T22:18:27.000+0000-73.98528740.773551-73.96431940.8092581
2015-04-01T22:29:31.000+000013.52015-04-01T22:29:31.000+0000-73.9619827270507840.7636833190918-73.9963836669921940.738079071044921
2011-10-17T18:58:23.000+00004.92011-10-17T18:58:23.000+0000-73.99241440.74972-73.99510340.7504851
2012-03-15T20:31:31.000+00004.92012-03-15T20:31:31.000+0000-73.9716440.766172-73.96069240.768071
2014-11-24T02:46:00.000+000027.02014-11-24T02:46:00.000+0000-74.00882740.710565-73.9276640.7598921
2014-03-12T13:13:14.000+00006.02014-03-12T13:13:14.000+0000-73.97703240.750545-73.99048840.7372051
2015-01-10T21:18:25.000+00005.52015-01-10T21:18:25.000+0000-73.984497070312540.728797912597656-73.9840850830078140.725383758544921
2011-09-25T14:09:00.000+000024.92011-09-25T14:09:00.000+0000-73.99467340.750317-73.94584340.8357222
2015-03-22T14:23:12.000+000022.52015-03-22T14:23:12.000+0000-73.9623413085937540.77907180786133-74.0059890747070240.709438323974614
2013-01-15T16:02:57.000+000015.02013-01-15T16:02:57.000+0000-73.98349140.734315-73.95683740.70421
2013-11-20T16:58:00.000+000013.02013-11-20T16:58:00.000+0000-73.98838240.764137-73.9915240.75021
2009-02-16T07:40:14.000+000014.52009-02-16T07:40:14.000+0000-73.94887240.807601-73.93721840.7673661
2009-02-27T17:39:00.000+00008.12009-02-27T17:39:00.000+0000-73.99287740.742668-73.98346840.747481
2009-11-05T00:57:13.000+000015.72009-11-05T00:57:13.000+0000-74.00412840.733121-73.96611740.6771121
2010-12-11T01:55:00.000+000010.52010-12-11T01:55:00.000+0000-73.99767740.722583-73.99282740.6791832
2012-02-12T15:18:00.000+000045.02012-02-12T15:18:00.000+0000-73.96985240.750962-73.78180240.6485271
2013-12-08T23:39:00.000+00003.02013-12-08T23:39:00.000+00000.00.00.00.05
2009-12-29T09:44:01.000+00004.12009-12-29T09:44:01.000+0000-73.97314140.785315-73.98015340.7757211
2010-04-27T20:20:00.000+000023.72010-04-27T20:20:00.000+0000-74.00532240.650103-73.85985240.7119421
2010-04-27T20:20:00.000+00009.32010-04-27T20:20:00.000+0000-73.9778540.729675-74.00587740.7258131
2012-09-23T02:57:00.000+000024.52012-09-23T02:57:00.000+0000-73.99514540.749812-73.94047840.7186623
2009-11-20T09:09:00.000+00007.32009-11-20T09:09:00.000+0000-73.95843740.77291-73.97425740.7552551
2009-12-16T22:00:00.000+000010.12009-12-16T22:00:00.000+0000-73.96981340.763205-73.99266840.7213722
2010-03-23T14:52:16.000+00003.72010-03-23T14:52:16.000+0000-73.99586340.744098-73.99099840.7410711
2010-05-08T16:17:04.000+00009.72010-05-08T16:17:04.000+0000-73.99043140.757773-73.97263940.7634741
2010-10-22T02:24:53.000+00006.12010-10-22T02:24:53.000+0000-73.98443340.771084-73.98443340.7710841
2011-05-07T15:12:32.000+000049.82011-05-07T15:12:32.000+0000-73.78223540.644691-73.97334440.7380622
2011-10-14T12:20:00.000+00004.92011-10-14T12:20:00.000+0000-73.95279740.780497-73.95504240.7885275
2011-11-08T07:14:00.000+00007.72011-11-08T07:14:00.000+0000-73.9872940.739077-74.00804540.7121551
2013-07-19T18:55:00.000+000031.832013-07-19T18:55:00.000+0000-73.86587540.77044-73.97922840.7492251
2014-05-17T13:12:55.000+00005.02014-05-17T13:12:55.000+0000-73.98142240.762434-73.98339840.7662862
2010-11-24T12:46:52.000+00004.52010-11-24T12:46:52.000+0000-73.96268140.775646-73.95743440.7777661
2011-03-30T12:22:32.000+00006.92011-03-30T12:22:32.000+0000-73.96669240.789004-73.95935840.8090181
2014-02-16T09:05:34.000+000012.52014-02-16T09:05:34.000+0000-73.99690540.756151-73.95456640.7799431
2014-12-04T15:23:00.000+000013.52014-12-04T15:23:00.000+0000-73.98232540.772905-73.96529740.759086
2013-04-01T12:44:00.000+00009.52013-04-01T12:44:00.000+0000-73.95667840.775412-73.97728240.7575771
2012-02-23T06:21:00.000+00006.12012-02-23T06:21:00.000+0000-73.98967540.756102-73.97054840.7631631
2013-10-10T05:53:00.000+00004.52013-10-10T05:53:00.000+0000-73.96889740.798707-73.96673340.7939951
2009-11-26T03:52:00.000+00006.52009-11-26T03:52:00.000+0000-73.98425840.76014-73.9973840.7492631
2010-04-01T10:07:00.000+00007.32010-04-01T10:07:00.000+0000-73.96346540.774312-73.983440.7668931
2010-05-22T19:26:00.000+00007.72010-05-22T19:26:00.000+0000-73.96971540.75779-73.9913440.7501231
2010-09-26T01:55:00.000+00007.72010-09-26T01:55:00.000+0000-73.995740.764427-73.99214840.7447872
2010-09-29T00:57:00.000+00008.92010-09-29T00:57:00.000+0000-73.99173840.744403-73.95988840.7694032
2012-03-20T17:34:00.000+000010.52012-03-20T17:34:00.000+0000-73.97819340.751915-74.00485840.7518531
2012-12-23T03:45:48.000+00006.02012-12-23T03:45:48.000+0000-73.95682940.72098-73.95718640.7328461
2013-06-12T17:04:53.000+00005.02013-06-12T17:04:53.000+0000-73.97477640.771861-73.98099840.7709011
2013-06-27T10:52:00.000+00008.02013-06-27T10:52:00.000+0000-73.96284340.76655-73.94711540.7717671
2011-08-25T07:35:23.000+000013.32011-08-25T07:35:23.000+0000-73.94780940.782872-73.98867640.7412821
2011-12-08T00:13:47.000+00002.92011-12-08T00:13:47.000+0000-73.97988240.758655-73.97783440.7621031
2009-04-25T13:08:00.000+000025.4500000000000032009-04-25T13:08:00.000+0000-73.9905540.745908-73.88536340.7718931
2012-11-28T21:33:33.000+00004.52012-11-28T21:33:33.000+0000-73.96663940.764331-73.95930740.7674771
2013-06-09T23:15:06.000+00009.02013-06-09T23:15:06.000+0000-74.00207840.73996-73.97913340.7499122
2010-07-21T16:39:00.000+00004.12010-07-21T16:39:00.000+0000-73.95459540.778175-73.95269840.7857151
2012-03-16T07:52:00.000+00005.32012-03-16T07:52:00.000+0000-73.96079740.818232-73.95325540.8101631
2015-05-02T23:49:41.000+00005.52015-05-02T23:49:41.000+0000-73.9807052612304840.77486038208008-73.991844177246140.7639465332031251
2012-11-28T08:30:00.000+000018.02012-11-28T08:30:00.000+0000-74.00605240.748617-73.96289240.80421
2013-09-30T13:11:00.000+00004.52013-09-30T13:11:00.000+0000-73.94735540.764565-73.95247540.7586971
2014-10-22T08:12:00.000+00006.02014-10-22T08:12:00.000+0000-73.9968640.72311-74.0053740.732351
2010-09-09T14:22:00.000+00008.12010-09-09T14:22:00.000+0000-73.9622640.759743-73.95314840.7703632
2013-02-14T19:35:44.000+00009.52013-02-14T19:35:44.000+0000-74.00573940.740252-74.01102340.7162671
2014-07-19T04:42:00.000+00005.52014-07-19T04:42:00.000+0000-73.99053240.719085-73.99053240.7190851
2014-10-15T09:43:35.000+000023.02014-10-15T09:43:35.000+0000-73.9584740.765569-73.99054740.6935341
2009-01-24T22:53:01.000+00006.62009-01-24T22:53:01.000+0000-73.99402140.75129-73.9725340.7496321
2009-03-15T02:15:39.000+000053.02009-03-15T02:15:39.000+0000-73.99330940.719976-74.04046540.7252341
2009-06-29T11:45:00.000+000015.32009-06-29T11:45:00.000+0000-73.975740.751598-74.016340.7046971
2010-11-25T00:41:00.000+00006.12010-11-25T00:41:00.000+0000-73.99227540.734648-74.00398240.7475825
2011-08-08T09:59:00.000+00007.32011-08-08T09:59:00.000+0000-73.9625240.776573-73.97550240.7572751
2013-12-23T13:52:00.000+000030.832013-12-23T13:52:00.000+0000-73.95260740.776032-73.86111740.7677821
2012-07-05T00:29:21.000+00006.52012-07-05T00:29:21.000+0000-73.98802640.765026-73.97530340.7871342
2014-01-18T15:23:00.000+00004.52014-01-18T15:23:00.000+0000-73.9642140.77061-73.9699340.7625971
2015-01-11T11:09:26.000+00005.52015-01-11T11:09:26.000+0000-73.9826202392578140.74237060546875-73.9958801269531240.732761383056646
2009-01-03T13:27:00.000+00003.72009-01-03T13:27:00.000+0000-73.96382340.774163-73.95764840.7826281
2010-12-04T23:56:00.000+00004.12010-12-04T23:56:00.000+0000-73.978440.783223-73.9817340.7789021
2012-03-07T09:29:44.000+00003.32012-03-07T09:29:44.000+0000-73.96535240.769132-73.96795340.765731
2012-10-13T02:31:22.000+000031.52012-10-13T02:31:22.000+0000-74.00745840.726242-73.87045940.7626491
2013-04-18T20:48:24.000+00007.02013-04-18T20:48:24.000+0000-73.99500140.760205-73.98605840.7788391
2011-11-11T04:06:20.000+00009.72011-11-11T04:06:20.000+0000-74.00249940.733322-73.96617440.7654091
2012-05-26T01:15:11.000+000012.12012-05-26T01:15:11.000+0000-73.98724340.72241-73.9716240.761991
2013-06-06T16:32:59.000+000010.52013-06-06T16:32:59.000+0000-73.95288140.783467-73.95789940.7703322
2010-11-09T14:41:00.000+00004.52010-11-09T14:41:00.000+0000-74.00060740.732278-73.99161740.735131
2011-03-03T14:15:00.000+00008.12011-03-03T14:15:00.000+0000-73.9519940.77783-73.96018740.7654421
2011-11-24T04:23:08.000+00004.92011-11-24T04:23:08.000+0000-73.99244540.721134-73.98164640.7144424
2013-05-30T10:54:32.000+00008.52013-05-30T10:54:32.000+0000-73.98932140.757413-73.96874840.7611641
2014-01-27T16:04:00.000+00007.02014-01-27T16:04:00.000+0000-73.955540.781842-73.97052740.7836871
2014-07-01T13:16:00.000+00005.52014-07-01T13:16:00.000+0000-73.97477840.7831-73.98570540.7783071
2009-04-08T07:37:00.000+00004.92009-04-08T07:37:00.000+0000-74.00121240.74134-73.98697740.7405381
2009-06-09T17:02:35.000+00006.12009-06-09T17:02:35.000+0000-73.98776940.750038-73.98044940.7616983
2010-05-03T20:30:32.000+00007.32010-05-03T20:30:32.000+0000-73.97653840.755762-73.95946140.7633291
2011-05-25T22:41:33.000+000012.12011-05-25T22:41:33.000+0000-73.98354840.726099-73.98439940.6914723
2011-09-25T02:07:00.000+00008.52011-09-25T02:07:00.000+00000.00.00.00.01
2009-05-13T07:43:00.000+00006.92009-05-13T07:43:00.000+0000-73.98181840.783335-73.9674840.8030381
2009-06-24T19:42:01.000+000013.72009-06-24T19:42:01.000+0000-74.00183740.732437-73.95773440.7695181
2011-06-06T13:16:00.000+00003.32011-06-06T13:16:00.000+0000-73.97298740.7904-73.9681440.7972181
2013-08-13T22:05:00.000+00005.52013-08-13T22:05:00.000+0000-73.98483340.724207-73.98698540.7334971
2014-04-16T19:14:55.000+000011.52014-04-16T19:14:55.000+0000-73.98291240.76426-73.99040740.750691
2015-05-23T21:29:14.000+00004.52015-05-23T21:29:14.000+0000-73.9835739135742240.76544189453125-73.975463867187540.765216827392581
2010-05-27T01:32:00.000+000016.12010-05-27T01:32:00.000+0000-73.98149740.776205-74.0146440.7081831
2011-06-01T22:39:35.000+000011.72011-06-01T22:39:35.000+0000-73.99209140.748239-73.95241440.7728951
2011-07-19T23:43:12.000+00008.52011-07-19T23:43:12.000+00000.00.00.00.01
2014-09-22T17:08:00.000+00009.02014-09-22T17:08:00.000+0000-73.9980140.75608-73.9827340.773341
2009-11-27T14:39:33.000+00006.52009-11-27T14:39:33.000+0000-73.96471440.769757-73.98211740.7749731
2013-03-23T12:37:00.000+00005.02013-03-23T12:37:00.000+0000-74.00040740.714337-74.00050340.7184521
2009-01-17T19:51:14.000+00006.12009-01-17T19:51:14.000+0000-73.95564140.772606-73.97113540.7553181
2013-08-17T22:34:59.000+000012.02013-08-17T22:34:59.000+0000-73.99151240.726929-73.97792940.7630741
2014-09-26T19:41:41.000+000012.02014-09-26T19:41:41.000+00000.00.00.00.01
2014-11-02T21:21:45.000+00008.52014-11-02T21:21:45.000+0000-73.98055640.748284-73.99954540.7286221
2015-01-17T21:00:44.000+00009.02015-01-17T21:00:44.000+0000-73.966285705566440.76172637939453-73.9605636596679840.77027511596681
2010-04-02T03:08:00.000+000013.32010-04-02T03:08:00.000+0000-73.99233840.724155-73.93165340.6992681
2010-04-16T21:07:02.000+00009.72010-04-16T21:07:02.000+0000-73.9917140.758915-73.98809340.7336131
2012-03-04T22:43:44.000+00005.32012-03-04T22:43:44.000+0000-73.9971640.742155-74.00557340.7262731
2012-07-10T09:37:00.000+000010.52012-07-10T09:37:00.000+0000-73.98382540.738307-73.95729340.7661551
2009-06-21T18:56:00.000+00008.92009-06-21T18:56:00.000+0000-74.00473740.751987-73.97416840.7432275
2010-03-10T07:55:47.000+000013.72010-03-10T07:55:47.000+0000-73.99239240.71515-73.97186940.6881431
2010-09-13T08:48:21.000+00008.12010-09-13T08:48:21.000+0000-73.97515240.756832-73.96532340.7658731
2011-06-22T21:44:45.000+000010.92011-06-22T21:44:45.000+0000-74.01448340.71451-73.98221540.7401781
2010-01-23T12:39:00.000+00006.12010-01-23T12:39:00.000+0000-73.98640540.745185-73.98902540.7526681
2011-03-16T17:05:00.000+00004.92011-03-16T17:05:00.000+0000-73.96492240.764382-73.95406840.7788771
2011-10-07T12:24:00.000+00005.72011-10-07T12:24:00.000+0000-73.97152340.75743-73.9820340.7448832
2012-10-05T13:34:41.000+00006.02012-10-05T13:34:41.000+0000-73.95686540.774874-73.95584240.7846691
2015-06-16T21:08:18.000+00006.52015-06-16T21:08:18.000+0000-73.977684020996140.7633056640625-73.9776916503906240.753574371337891
2010-10-18T11:15:27.000+00005.72010-10-18T11:15:27.000+0000-73.99325240.752388-73.98760440.7653741
2014-12-18T08:06:14.000+00006.02014-12-18T08:06:14.000+0000-73.98837440.759217-73.99107540.7706891
2009-01-19T10:38:00.000+00003.72009-01-19T10:38:00.000+0000-73.9870840.741545-73.99055840.7367781
2009-05-15T12:58:00.000+00004.92009-05-15T12:58:00.000+0000-73.96536840.763128-73.95664240.7748731
2014-06-20T01:02:07.000+00007.02014-06-20T01:02:07.000+0000-73.99516340.744714-73.99973940.7285091
2009-02-08T10:46:00.000+000010.92009-02-08T10:46:00.000+0000-73.99805340.722607-73.9656340.762181
2010-05-05T19:51:00.000+00006.52010-05-05T19:51:00.000+0000-73.95157340.773733-73.95982740.7619321
2011-11-13T12:59:00.000+000013.32011-11-13T12:59:00.000+0000-73.95570740.778757-73.99092240.740531
2009-01-14T08:21:59.000+00004.12009-01-14T08:21:59.000+0000-73.98686940.758182-73.97784440.7642091
2010-02-22T07:42:00.000+00006.92010-02-22T07:42:00.000+0000-73.99657340.748843-73.99517840.7507531
2014-04-08T14:11:00.000+000015.02014-04-08T14:11:00.000+0000-73.96619340.758177-73.99164240.749081
2014-06-14T20:48:12.000+000022.52014-06-14T20:48:12.000+0000-73.99144740.75005-73.93491940.7694772
2009-06-25T16:21:00.000+000012.12009-06-25T16:21:00.000+0000-74.00777340.725133-73.97130840.763911
2013-10-06T04:24:09.000+000020.02013-10-06T04:24:09.000+0000-73.96007440.762443-73.99105840.7510861
2013-12-12T09:30:00.000+000015.02013-12-12T09:30:00.000+0000-73.98969540.735492-73.9782840.7547751
2015-01-02T23:24:27.000+00008.52015-01-02T23:24:27.000+0000-73.9782333374023340.76188659667969-73.9921951293945340.7486801147460943
2014-05-31T14:53:00.000+00005.52014-05-31T14:53:00.000+0000-73.99119240.739212-74.0017540.728441
2011-02-09T14:02:00.000+00004.92011-02-09T14:02:00.000+0000-73.98744740.741957-73.97799340.7541682
2012-05-17T20:29:00.000+00004.92012-05-17T20:29:00.000+0000-73.98609240.751682-73.97724240.7602921
2012-08-28T23:30:17.000+00002.52012-08-28T23:30:17.000+0000-73.95900840.712517-73.95913240.7121841
2012-01-14T14:32:09.000+000010.52012-01-14T14:32:09.000+0000-73.95230140.784013-73.97304540.7488681
2011-07-03T13:55:00.000+00005.72011-07-03T13:55:00.000+0000-73.98970840.73873-73.99761340.7241672
2012-11-16T12:42:29.000+000011.02012-11-16T12:42:29.000+0000-73.95039640.783667-73.96124840.7609611
2013-02-26T09:24:04.000+000010.02013-02-26T09:24:04.000+0000-73.9495240.780422-73.97210140.762291
2014-10-19T09:51:53.000+000057.332014-10-19T09:51:53.000+0000-73.77672140.645324-73.98318340.7488772
2011-11-03T23:07:00.000+000049.82011-11-03T23:07:00.000+0000-73.7855540.64205-73.98079340.7491871
2014-09-27T11:46:49.000+00008.52014-09-27T11:46:49.000+0000-73.99214840.754051-73.97590340.7487171
2015-03-09T20:05:18.000+000013.52015-03-09T20:05:18.000+0000-73.9682922363281240.76164245605469-73.9990997314453140.73936843872071
2015-03-28T10:48:38.000+00005.02015-03-28T10:48:38.000+0000-73.999412536621140.74410629272461-73.9898834228515540.7472686767578051
2009-01-28T22:34:00.000+00006.52009-01-28T22:34:00.000+0000-73.99402340.75171-73.97677340.7557731
2009-03-21T10:09:09.000+000012.92009-03-21T10:09:09.000+0000-73.97262640.785846-73.99432140.7366661
2010-10-21T14:51:18.000+00006.12010-10-21T14:51:18.000+0000-73.99751940.73614-74.00798640.7362141
2013-02-05T23:38:00.000+00003.52013-02-05T23:38:00.000+0000-74.0158940.711205-74.01313540.7150372
2015-01-05T12:55:17.000+00009.02015-01-05T12:55:17.000+0000-73.9884490966796740.7259407043457-73.9891510009765640.728420257568361
2009-03-19T16:15:36.000+00006.72009-03-19T16:15:36.000+0000-74.00054840.737311-73.99316240.7349751
2009-11-13T18:50:00.000+00005.32009-11-13T18:50:00.000+0000-73.95178840.782128-73.96187840.7767351
2013-06-25T18:51:00.000+00005.52013-06-25T18:51:00.000+0000-73.96397540.773902-73.9541140.7844721
2010-01-11T18:08:00.000+00007.72010-01-11T18:08:00.000+0000-73.98565340.747188-73.9832940.7302671
2010-07-11T13:32:00.000+000012.92010-07-11T13:32:00.000+0000-73.9727440.753488-74.00657540.7414521
2011-11-16T14:33:22.000+00004.52011-11-16T14:33:22.000+0000-73.95832640.768777-73.9591640.7634422
2013-05-25T20:25:46.000+00009.52013-05-25T20:25:46.000+0000-73.98600440.749766-74.00331240.7242121
2013-06-17T16:42:54.000+00006.02013-06-17T16:42:54.000+0000-73.9862640.75845-73.98265340.7716743
2009-11-20T00:31:00.000+00006.12009-11-20T00:31:00.000+0000-73.98813740.73474-73.98356840.746451
2012-06-20T15:46:00.000+000012.12012-06-20T15:46:00.000+0000-73.98542840.744102-73.95858840.7704072
2012-12-16T02:09:05.000+000010.52012-12-16T02:09:05.000+0000-73.9140640.765092-73.95065740.7450171
2014-04-19T15:46:38.000+00008.02014-04-19T15:46:38.000+0000-73.99476740.731799-73.98651640.7428461
2014-05-26T21:35:00.000+00008.52014-05-26T21:35:00.000+0000-73.97742540.752052-73.981540.7751472
2015-04-07T18:37:37.000+000012.52015-04-07T18:37:37.000+0000-73.9717712402343840.755718231201165-73.9783172607421740.761894226074221
2011-05-27T09:51:30.000+00004.52011-05-27T09:51:30.000+0000-74.00599140.735314-73.99833440.7454461
2012-01-06T18:35:00.000+000013.32012-01-06T18:35:00.000+0000-74.00689340.712272-73.98937540.7340325
2012-05-24T05:44:00.000+00006.92012-05-24T05:44:00.000+0000-73.99984240.761572-73.98284540.7556521
2014-04-30T09:04:07.000+00003.52014-04-30T09:04:07.000+0000-74.00582140.745254-74.00054640.7527091
2014-09-26T18:09:32.000+00009.52014-09-26T18:09:32.000+0000-73.95950940.814332-73.93958340.8053121
2009-02-02T08:43:43.000+000022.12009-02-02T08:43:43.000+0000-73.99635940.686204-73.97237340.7620921
2010-10-05T22:09:00.000+00005.32010-10-05T22:09:00.000+0000-74.0067240.743813-73.99498740.7602581
2011-02-22T14:09:00.000+00002.52011-02-22T14:09:00.000+00000.00.00.00.05
2011-09-06T20:43:29.000+00006.52011-09-06T20:43:29.000+0000-73.98736640.739465-74.00228640.747031
2013-05-31T05:02:30.000+000012.52013-05-31T05:02:30.000+00000.00.00.00.01
2014-11-23T08:42:00.000+000010.02014-11-23T08:42:00.000+0000-73.92619740.7624-73.96662240.7625521
2015-06-22T17:51:38.000+000024.52015-06-22T17:51:38.000+0000-73.9988250732421740.749637603759766-74.010742187540.70959472656254
2009-02-06T23:31:00.000+00007.72009-02-06T23:31:00.000+0000-73.98893340.757277-73.97588340.7422185
2009-06-30T10:20:09.000+000014.12009-06-30T10:20:09.000+00000.00.00.00.01
2010-07-12T10:50:00.000+00005.72010-07-12T10:50:00.000+0000-73.99248840.730615-74.00148240.7177921
2015-06-08T01:59:17.000+000028.02015-06-08T01:59:17.000+00000.00.00.00.01
2009-01-27T15:18:00.000+00006.52009-01-27T15:18:00.000+0000-73.97378740.747695-73.98631540.7469735
2009-03-01T16:45:25.000+00007.32009-03-01T16:45:25.000+0000-73.99365640.75711-73.98016840.7417781
2011-10-26T23:00:42.000+00007.72011-10-26T23:00:42.000+0000-73.98143940.760569-73.95785440.7793091
2013-12-12T19:02:08.000+000010.02013-12-12T19:02:08.000+0000-74.00259540.737675-73.98713540.7294821
2010-11-21T01:41:00.000+000010.12010-11-21T01:41:00.000+0000-74.004540.742143-73.9943340.7204121
2011-03-11T18:13:00.000+00006.52011-03-11T18:13:00.000+0000-73.96201840.779402-73.98149540.7735652
2014-08-18T06:22:11.000+00006.02014-08-18T06:22:11.000+0000-73.97799940.778626-73.97916140.7646251
2015-01-08T11:44:11.000+000016.52015-01-08T11:44:11.000+0000-73.9794387817382740.75250244140625-73.9556579589843840.7641029357910161
2015-05-26T17:54:52.000+00008.52015-05-26T17:54:52.000+0000-73.9909210205078140.74221420288086-73.9801330566406240.7607383728027341
2011-12-24T11:45:00.000+000017.32011-12-24T11:45:00.000+0000-73.98793840.76025-74.01433540.703692
2012-10-10T07:49:23.000+000010.52012-10-10T07:49:23.000+0000-73.98858140.764449-73.9857640.7390911
2015-04-09T22:57:02.000+000015.02015-04-09T22:57:02.000+0000-73.9657745361328140.76523208618164-73.9970092773437540.756351470947271
2013-06-07T22:20:00.000+000023.52013-06-07T22:20:00.000+0000-73.99059740.75622-73.9623940.7198471
2011-10-24T22:54:00.000+000010.12011-10-24T22:54:00.000+0000-73.99060240.7611-73.96002540.779582
2011-11-21T18:49:00.000+000017.72011-11-21T18:49:00.000+0000-73.98950340.753248-73.97410740.7955772
2014-10-16T17:27:00.000+00009.02014-10-16T17:27:00.000+0000-73.96303540.772385-73.9813240.771163
2009-06-12T10:34:00.000+00006.92009-06-12T10:34:00.000+0000-73.97966840.739275-73.97510740.7563221
2012-06-17T01:41:00.000+00007.32012-06-17T01:41:00.000+0000-73.99573240.724963-73.97937740.7514082
2012-12-27T23:22:00.000+000021.52012-12-27T23:22:00.000+0000-73.9849540.759487-73.97059740.6945426
2010-02-02T12:40:32.000+00009.72010-02-02T12:40:32.000+0000-73.99549440.752919-73.97741240.7438281
2012-05-28T19:31:00.000+00005.72012-05-28T19:31:00.000+0000-73.98420240.744187-73.9746240.7614231
2015-05-14T22:42:43.000+000013.02015-05-14T22:42:43.000+0000-73.9809036254882840.75609588623047-73.9586257934570240.766338348388671
2013-02-27T16:08:15.000+000010.52013-02-27T16:08:15.000+0000-73.96857440.750493-73.97565440.7559571
2015-03-31T07:09:18.000+00009.02015-03-31T07:09:18.000+0000-73.9485778808593840.783203125-73.9552688598632840.765163421630861
2011-10-05T20:50:00.000+00007.32011-10-05T20:50:00.000+0000-73.96140740.765273-73.95439340.784032
2014-05-14T07:32:00.000+00008.52014-05-14T07:32:00.000+0000-73.98649240.734067-73.98801740.7524121
2015-02-06T14:44:35.000+000023.02015-02-06T14:44:35.000+0000-73.787010192871140.64413833618164-73.8106384277343840.692218780517582
2009-03-24T11:37:00.000+000013.72009-03-24T11:37:00.000+0000-73.988140.754748-73.9972740.725631
2011-07-30T07:33:13.000+000016.92011-07-30T07:33:13.000+0000-73.88480140.755707-73.98047240.7655561
2011-09-24T23:20:00.000+000013.72011-09-24T23:20:00.000+0000-73.95360340.779203-73.99576340.7267013
2011-12-22T11:07:00.000+000029.32011-12-22T11:07:00.000+0000-73.9423840.837712-73.86437240.7699852
2014-11-03T12:40:00.000+00006.52014-11-03T12:40:00.000+0000-73.96115140.774578-73.97225140.785641
2012-05-18T18:41:30.000+000010.92012-05-18T18:41:30.000+0000-73.98845540.758432-73.98381640.7301471
Showing the first 1000 rows.
In [0]:
df.shape
Out[7]: (5500000, 8)
In [0]:
df.describe()
Out[8]:
fare_amount pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count
count 5.500000e+06 5.500000e+06 5.500000e+06 5.499964e+06 5.499964e+06 5.500000e+06
mean 1.134239e+01 -7.250980e+01 3.992242e+01 -7.250923e+01 3.991838e+01 1.684539e+00
std 9.819104e+00 1.281230e+01 9.023598e+00 1.283150e+01 9.250279e+00 1.329587e+00
min -1.000000e+02 -3.426609e+03 -3.488080e+03 -3.412653e+03 -3.488080e+03 0.000000e+00
25% 6.000000e+00 -7.399206e+01 4.073491e+01 -7.399140e+01 4.073404e+01 1.000000e+00
50% 8.500000e+00 -7.398181e+01 4.075263e+01 -7.398016e+01 4.075315e+01 1.000000e+00
75% 1.250000e+01 -7.396711e+01 4.076711e+01 -7.396368e+01 4.076811e+01 2.000000e+00
max 1.273310e+03 3.439426e+03 3.344459e+03 3.457622e+03 3.345917e+03 2.080000e+02
In [0]:
df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 5500000 entries, 0 to 5499999 Data columns (total 8 columns): # Column Dtype --- ------ ----- 0 key datetime64[ns] 1 fare_amount float64 2 pickup_datetime datetime64[ns] 3 pickup_longitude float64 4 pickup_latitude float64 5 dropoff_longitude float64 6 dropoff_latitude float64 7 passenger_count int32 dtypes: datetime64[ns](2), float64(5), int32(1) memory usage: 356.7 MB

Convert object datatype to datetime64[ns]

In [0]:
df.key = df.key.astype('datetime64[ns]')
df.pickup_datetime = df.pickup_datetime.astype('datetime64[ns]')
test_df.key = test_df.key.astype('datetime64[ns]')
test_df.pickup_datetime = test_df.pickup_datetime.astype('datetime64[ns]')

Check and drop the null values

In [0]:
df.isna().sum().sort_values(ascending=False)
Out[11]: dropoff_longitude 36 dropoff_latitude 36 key 0 fare_amount 0 pickup_datetime 0 pickup_longitude 0 pickup_latitude 0 passenger_count 0 dtype: int64
In [0]:
df.dropna(inplace=True)

Check and drop the records which have negative fare amount

In [0]:
df[df.fare_amount < 0].fare_amount
Out[13]: 2039 -2.9 2486 -2.5 13032 -3.0 28839 -2.5 36722 -2.5 ... 5405802 -4.5 5421557 -4.0 5427513 -5.0 5437260 -16.0 5452791 -2.5 Name: fare_amount, Length: 234, dtype: float64
In [0]:
df.drop(df[df.fare_amount < 0].index, axis = 0, inplace = True)

Check and drop the records which have passenger count more than 6

In [0]:
df[df.passenger_count > 6]
Out[15]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count
929022 2009-07-30 11:54:00 3.30 2009-07-30 11:54:00 0.000000 0.000000 0.000000 0.000000 208
1007609 2014-06-24 15:13:00 104.00 2014-06-24 15:13:00 -74.015780 40.715420 -74.170280 40.708340 9
2154045 2010-12-16 11:21:00 3.30 2010-12-16 11:21:00 0.000000 0.000000 0.000000 0.000000 208
2198549 2010-12-15 14:20:00 3.30 2010-12-15 14:20:00 0.000000 0.000000 0.000000 0.000000 208
2910347 2010-12-16 06:44:00 4.50 2010-12-16 06:44:00 0.000000 0.000000 0.000000 0.000000 208
3107489 2009-05-12 14:50:00 2.70 2009-05-12 14:50:00 -73.937818 40.758260 -73.937827 40.758250 208
3323791 2011-08-27 01:24:00 8.50 2011-08-27 01:24:00 -73.987858 40.760340 -74.000682 40.752413 129
4095440 2015-06-14 08:56:16 37.04 2015-06-14 08:56:16 -73.982094 40.756252 -73.872482 40.774506 9
4103745 2010-12-22 12:11:00 23.70 2010-12-22 12:11:00 0.000000 0.000000 0.000000 0.000000 208
4432483 2009-05-11 13:56:00 11.10 2009-05-11 13:56:00 -73.937733 40.758267 -73.937737 40.758273 208
4467314 2015-01-01 21:32:16 8.50 2015-01-01 21:32:16 -74.005867 40.740643 -73.988045 40.735100 7
4679603 2010-02-20 01:53:00 9.30 2010-02-20 01:53:00 0.554830 0.000000 -2069.478952 28.121107 51
In [0]:
df.drop(df[df.passenger_count > 6].index, axis = 0, inplace = True)

Check the standard range of latitude and longitude, if value bound the range then drop

In [0]:
df.pickup_latitude.between(-90,90,inclusive=True).sum()
Out[17]: 5499627
In [0]:
df.drop(df[df.pickup_latitude < -90].index, axis = 0, inplace = True) 
df.drop(df[df.pickup_latitude > 90].index, axis = 0, inplace = True)
In [0]:
df.dropoff_latitude.between(-90,90,inclusive=True).sum()
df.drop(df[df.dropoff_latitude < -90].index, axis = 0, inplace = True) 
df.drop(df[df.dropoff_latitude > 90].index, axis = 0, inplace = True)
In [0]:
df.pickup_longitude.between(-180,180,inclusive=True).sum()
df.drop(df[df.pickup_longitude < -180].index, axis = 0, inplace = True) 
df.drop(df[df.pickup_longitude > 180].index, axis = 0, inplace = True)
In [0]:
df.dropoff_longitude.between(-180,180,inclusive=True).sum()
df.drop(df[df.dropoff_longitude < -180].index, axis = 0, inplace = True) 
df.drop(df[df.dropoff_longitude > 180].index, axis = 0, inplace = True)

Function to calculate distance using haversine formula

  • Distance is calculated in miles.
In [0]:
def distance(data, lat1, long1, lat2, long2):
    x = np.sin(np.radians(df[lat2]-df[lat1])/2.0) ** 2 + np.cos(np.radians(df[lat1])) * np.cos(np.radians(df[lat2])) * \
        np.sin(np.radians(df[long2]-df[long1])/2.0) ** 2
    y = 2 * np.arctan2(np.sqrt(x), np.sqrt(1 - x))
    data['distance'] = 3959 * y
    pass
In [0]:
distance(df, 'pickup_latitude', 'pickup_longitude', 'dropoff_latitude', 'dropoff_longitude')

Feature scaling of pickup datetime

In [0]:
df['year'] = df.pickup_datetime.dt.year
df['month'] = df.pickup_datetime.dt.month
df['date'] = df.pickup_datetime.dt.day
df['day_of_week'] = df.pickup_datetime.dt.dayofweek
df['hour'] = df.pickup_datetime.dt.hour

Data Visualization¶

Histogram of fare amount

In [0]:
Hist = [go.Histogram(x=df.fare_amount[:1000000])]
layout = go.Layout(title = 'Fare Amount')
fig = go.Figure(data = Hist, layout = layout)
iplot(fig)

Scatterplot of passenger count and fare amount

In [0]:
plt.figure(figsize=(15,7))
plt.scatter(x=df.passenger_count, y=df.fare_amount)
plt.xlabel('Passenger Count')
plt.ylabel('Fare')
Out[26]:
Text(0, 0.5, 'Fare')

Scatterplot of date and fare amount

In [0]:
plt.figure(figsize=(15,7))
plt.scatter(x=df.date, y=df.fare_amount, s=1.5)
plt.xlabel('Date')
plt.ylabel('Fare')
Out[27]:
Text(0, 0.5, 'Fare')

Scatterplot of hour and fare

In [0]:
plt.figure(figsize=(15,7))
plt.scatter(x=df.hour, y=df.fare_amount)
plt.xlabel('Hour')
plt.ylabel('Fare')
Out[28]:
Text(0, 0.5, 'Fare')

Scatterplot of fare amount vs day of week

In [0]:
plt.figure(figsize=(15,7))
plt.scatter(x=df.day_of_week, y=df.fare_amount, s=1.5)
plt.xlabel('Day of Week')
plt.ylabel('Fare')
Out[29]:
Text(0, 0.5, 'Fare')

Relation between distance and fare

In [0]:
plt.figure(figsize=(16,10))
plt.scatter(x=df.distance, y=df.fare_amount, s=1.5)
plt.xlabel('Distance')
plt.ylabel('Fare')
Out[30]:
Text(0, 0.5, 'Fare')

Distribution of distance relative to fare and linear patterns in the distance

In [0]:
fig, axs = plt.subplots(1, 2, figsize=(18,7))
axs[0].scatter(df.distance, df.fare_amount, alpha=0.2)
axs[0].set_xlabel('Distance')
axs[0].set_ylabel('Fare')
axs[0].set_title('All data')

idx = (df.distance < 10) & (df.fare_amount < 75)
axs[1].scatter(df[idx].distance, df[idx].fare_amount, alpha=0.2)
axs[1].set_xlabel('Distance')
axs[1].set_ylabel('Fare')
axs[1].set_title('Distance < 10 mile, fare < $75');

Feature Engineering¶

Scenario

  • Pickup latitude and longitude are 0, Dropoff latitude and longitude are not 0 but fare amount is 0

  • vice versa.

In [0]:
df.drop(df.loc[((df.pickup_latitude == 0) & (df.pickup_longitude == 0))&((df.dropoff_latitude != 0) & (df.dropoff_longitude != 0)) & (df.fare_amount == 0)].index, axis = 0, inplace = True)
In [0]:
df.drop(df.loc[((df.pickup_latitude != 0) & (df.pickup_longitude != 0))&((df.dropoff_latitude == 0) & (df.dropoff_longitude == 0)) & (df.fare_amount == 0)].index, axis = 0, inplace = True)

There are so many irrelevant records in the correlation of distance and fare.

So as per the statistics of the data available for the new york city, base fare for the taxi ride is $2.5 and average $1.56 per mile.

Fare = (Distance * 1.56) + 2.5

Check the records if the distance is above 200 and fare amount is not equal to 0

In [0]:
distance_check = df.loc[(df.distance > 200)&(df.fare_amount != 0)]
distance_check
Out[34]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
472 2009-02-22 22:48:00 2.5 2009-02-22 22:48:00 0.000000 0.000000 -74.005433 40.726685 2 5385.945749 2009 2 22 6 22
1260 2011-03-10 20:25:00 5.7 2011-03-10 20:25:00 -73.973907 40.754743 0.000000 0.000000 2 5384.680323 2011 3 10 3 20
2280 2011-08-29 08:24:00 8.9 2011-08-29 08:24:00 -73.936667 40.757815 0.000000 40.757815 1 3744.920829 2011 8 29 0 8
2397 2012-06-24 17:11:10 45.0 2012-06-24 17:11:10 0.000000 0.000000 -74.010230 40.714553 2 5386.038620 2012 6 24 6 17
4278 2015-04-07 23:33:02 7.0 2015-04-07 23:33:02 -73.972702 40.757423 0.000000 0.000000 1 5384.652471 2015 4 7 1 23
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5498033 2013-01-16 13:50:32 56.8 2013-01-16 13:50:32 0.000000 0.000000 -73.782726 40.648842 2 5373.483411 2013 1 16 2 13
5498148 2015-04-25 16:06:45 13.5 2015-04-25 16:06:45 0.000000 0.000000 -73.984329 40.737274 2 5384.994227 2015 4 25 5 16
5498288 2012-06-21 13:17:00 9.3 2012-06-21 13:17:00 -73.993742 40.759005 -73.993490 0.004457 2 2816.040848 2012 6 21 3 13
5498957 2012-07-13 13:50:00 7.7 2012-07-13 13:50:00 -7.978857 40.741195 -74.000840 40.739035 1 3369.164958 2012 7 13 4 13
5499385 2012-01-16 17:10:00 5.3 2012-01-16 17:10:00 0.000000 40.723482 -73.983288 40.725175 1 3749.152425 2012 1 16 0 17

11145 rows × 14 columns

Update all the records with correct values if satisfy the above condition

In [0]:
distance_check.distance = distance_check.apply(lambda x: (x.fare_amount - 2.50) / 1.56, axis = 1)
df.update(distance_check)
/databricks/python/lib/python3.8/site-packages/pandas/core/generic.py:5494: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

Check if both distance and fare are 0 then it should be dropped

In [0]:
df[(df.distance == 0) & (df.fare_amount == 0)]
Out[36]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
105051 2013-08-21 21:41:00 0.0 2013-08-21 21:41:00 0.000000 0.000000 0.000000 0.000000 2.0 0.0 2013.0 8.0 21.0 2.0 21.0
331597 2013-08-05 06:45:54 0.0 2013-08-05 06:45:54 -73.982354 40.679971 -73.982354 40.679971 1.0 0.0 2013.0 8.0 5.0 0.0 6.0
436658 2015-03-04 22:33:39 0.0 2015-03-04 22:33:39 -74.043442 40.788208 -74.043442 40.788208 1.0 0.0 2015.0 3.0 4.0 2.0 22.0
689250 2015-05-27 23:10:03 0.0 2015-05-27 23:10:03 -73.994125 40.741131 -73.994125 40.741131 1.0 0.0 2015.0 5.0 27.0 2.0 23.0
1221438 2015-02-02 21:58:28 0.0 2015-02-02 21:58:28 0.000000 0.000000 0.000000 0.000000 2.0 0.0 2015.0 2.0 2.0 0.0 21.0
1598058 2013-08-06 11:12:00 0.0 2013-08-06 11:12:00 0.000000 0.000000 0.000000 0.000000 2.0 0.0 2013.0 8.0 6.0 1.0 11.0
1662545 2010-03-13 02:39:29 0.0 2010-03-13 02:39:29 -74.035278 40.738683 -74.035278 40.738683 2.0 0.0 2010.0 3.0 13.0 5.0 2.0
2214498 2010-02-03 11:44:07 0.0 2010-02-03 11:44:07 -74.014147 40.710546 -74.014147 40.710546 1.0 0.0 2010.0 2.0 3.0 2.0 11.0
2329503 2015-02-19 09:43:11 0.0 2015-02-19 09:43:11 -73.953857 40.813251 -73.953857 40.813251 1.0 0.0 2015.0 2.0 19.0 3.0 9.0
2581417 2015-05-07 19:12:43 0.0 2015-05-07 19:12:43 -73.913727 40.779018 -73.913727 40.779018 1.0 0.0 2015.0 5.0 7.0 3.0 19.0
2618454 2015-03-26 05:43:22 0.0 2015-03-26 05:43:22 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 3.0 26.0 3.0 5.0
2991619 2015-01-15 14:49:08 0.0 2015-01-15 14:49:08 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 1.0 15.0 3.0 14.0
3070651 2015-01-25 20:54:02 0.0 2015-01-25 20:54:02 -73.981293 40.769012 -73.981293 40.769012 1.0 0.0 2015.0 1.0 25.0 6.0 20.0
3252539 2015-01-14 10:15:51 0.0 2015-01-14 10:15:51 -73.937508 40.758129 -73.937508 40.758129 1.0 0.0 2015.0 1.0 14.0 2.0 10.0
3712453 2010-03-29 12:47:22 0.0 2010-03-29 12:47:22 -73.836776 40.869879 -73.836776 40.869879 1.0 0.0 2010.0 3.0 29.0 0.0 12.0
4191567 2010-02-22 01:02:16 0.0 2010-02-22 01:02:16 -73.981984 40.757467 -73.981984 40.757467 1.0 0.0 2010.0 2.0 22.0 0.0 1.0
4307073 2010-02-13 00:30:23 0.0 2010-02-13 00:30:23 -73.968945 40.764540 -73.968945 40.764540 1.0 0.0 2010.0 2.0 13.0 5.0 0.0
4322959 2015-03-25 07:20:55 0.0 2015-03-25 07:20:55 0.000000 0.000000 0.000000 0.000000 5.0 0.0 2015.0 3.0 25.0 2.0 7.0
4377466 2015-01-16 14:56:36 0.0 2015-01-16 14:56:36 -73.937531 40.758289 -73.937531 40.758289 1.0 0.0 2015.0 1.0 16.0 4.0 14.0
4383356 2013-08-17 13:55:00 0.0 2013-08-17 13:55:00 0.000000 0.000000 0.000000 0.000000 2.0 0.0 2013.0 8.0 17.0 5.0 13.0
4819787 2015-02-18 06:47:03 0.0 2015-02-18 06:47:03 -73.937820 40.758190 -73.937820 40.758190 1.0 0.0 2015.0 2.0 18.0 2.0 6.0
4851000 2010-02-10 20:18:01 0.0 2010-02-10 20:18:01 -74.003095 40.743403 -74.003095 40.743403 1.0 0.0 2010.0 2.0 10.0 2.0 20.0
5406596 2015-04-21 03:41:29 0.0 2015-04-21 03:41:29 -73.937439 40.758160 -73.937439 40.758160 1.0 0.0 2015.0 4.0 21.0 1.0 3.0
In [0]:
df.drop(df[(df.distance == 0) & (df.fare_amount == 0)].index, axis = 0, inplace = True)

Check the fare amount is less than the base amount in the working days then drop it

In [0]:
df.loc[(((df.hour >= 6) & (df.hour <= 20)) & ((df.day_of_week >= 1) & (df.day_of_week <= 5)) & (df.distance == 0) & (df.fare_amount < 2.5))]
Out[38]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
830616 2015-01-21 06:29:21 0.01 2015-01-21 06:29:21 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 1.0 21.0 2.0 6.0
925892 2015-01-21 14:12:00 1.90 2015-01-21 14:12:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 1.0 21.0 2.0 14.0
1112195 2015-03-25 14:55:38 1.60 2015-03-25 14:55:38 0.000000 0.000000 0.000000 0.000000 2.0 0.0 2015.0 3.0 25.0 2.0 14.0
1215355 2015-05-29 18:15:27 2.00 2015-05-29 18:15:27 -73.903214 40.747318 -73.903214 40.747318 1.0 0.0 2015.0 5.0 29.0 4.0 18.0
2097377 2013-08-30 15:11:00 0.50 2013-08-30 15:11:00 -121.340000 38.903350 -121.340000 38.903350 1.0 0.0 2013.0 8.0 30.0 4.0 15.0
2322071 2010-02-25 12:44:00 1.25 2010-02-25 12:44:00 -73.937722 40.758318 -73.937722 40.758318 5.0 0.0 2010.0 2.0 25.0 3.0 12.0
2949904 2015-01-22 13:34:00 2.00 2015-01-22 13:34:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 1.0 22.0 3.0 13.0
3010346 2015-01-23 08:50:38 0.01 2015-01-23 08:50:38 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 1.0 23.0 4.0 8.0
4112515 2015-04-15 20:12:10 0.01 2015-04-15 20:12:10 -73.994553 40.750240 -73.994553 40.750240 1.0 0.0 2015.0 4.0 15.0 2.0 20.0
4920415 2013-08-09 18:39:00 1.50 2013-08-09 18:39:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2013.0 8.0 9.0 4.0 18.0
5425695 2015-02-05 17:02:10 0.01 2015-02-05 17:02:10 -73.866501 40.770050 -73.866501 40.770050 1.0 0.0 2015.0 2.0 5.0 3.0 17.0
In [0]:
df.drop(df.loc[(((df.hour >= 6) & (df.hour <= 20)) & ((df.day_of_week >= 1) & (df.day_of_week <= 5)) & 
                  (df.distance == 0) & (df.fare_amount < 2.5))].index, axis = 0, inplace = True)

Check and drop the records if fare is less than base amount on the weekends

In [0]:
df.loc[((df.day_of_week == 0) | (df.day_of_week == 6)) & (df.distance == 0) & (df.fare_amount < 2.5)]
Out[40]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
2414636 2015-01-12 21:09:25 1.0 2015-01-12 21:09:25 -73.880669 40.740891 -73.880669 40.740891 1.0 0.0 2015.0 1.0 12.0 0.0 21.0
In [0]:
df.drop(df.loc[((df.day_of_week == 0) | (df.day_of_week == 6)) & (df.distance == 0) & (df.fare_amount < 2.5)].index, axis = 0, inplace = True)

Check if fare is 0 but distance is not 0 then impute it with mathematical calculation

In [0]:
fare_check = df.loc[(df.fare_amount == 0) & (df.distance != 0)]
fare_check.sort_values('distance',ascending = False)
Out[42]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
3614406 2015-05-12 08:28:24 0.0 2015-05-12 08:28:24 -73.820679 40.665684 -74.181442 40.687679 1.0 18.966283 2015.0 5.0 12.0 1.0 8.0
5325349 2015-02-07 01:58:09 0.0 2015-02-07 01:58:09 -74.009926 40.736710 -74.282852 40.614143 3.0 16.621915 2015.0 2.0 7.0 5.0 1.0
1107618 2015-05-31 01:52:15 0.0 2015-05-31 01:52:15 -73.997482 40.758915 -74.144936 40.946930 4.0 15.105223 2015.0 5.0 31.0 6.0 1.0
3763201 2010-03-05 21:43:42 0.0 2010-03-05 21:43:42 -73.786049 40.641929 -73.981236 40.782779 4.0 14.114868 2010.0 3.0 5.0 4.0 21.0
1902135 2010-03-08 20:23:36 0.0 2010-03-08 20:23:36 -73.786727 40.640482 -73.979946 40.762910 5.0 13.191238 2010.0 3.0 8.0 0.0 20.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
211499 2010-03-08 18:22:00 0.0 2010-03-08 18:22:00 -73.937353 40.758227 -73.937358 40.758230 1.0 0.000334 2010.0 3.0 8.0 0.0 18.0
2771692 2015-05-31 04:40:53 0.0 2015-05-31 04:40:53 -73.896584 40.752499 -73.896584 40.752502 1.0 0.000264 2015.0 5.0 31.0 6.0 4.0
495273 2015-05-26 12:28:03 0.0 2015-05-26 12:28:03 -73.986473 40.721909 -73.986473 40.721905 1.0 0.000264 2015.0 5.0 26.0 1.0 12.0
670254 2015-02-22 19:26:37 0.0 2015-02-22 19:26:37 -73.994370 40.750725 -73.994370 40.750721 1.0 0.000264 2015.0 2.0 22.0 6.0 19.0
4942824 2013-08-20 13:54:39 0.0 2013-08-20 13:54:39 -74.002551 40.733974 -74.002555 40.733975 6.0 0.000221 2013.0 8.0 20.0 1.0 13.0

100 rows × 14 columns

In [0]:
fare_check.fare_amount = fare_check.apply(lambda x: ((x.distance * 1.56) + 2.5), axis = 1)
df.update(fare_check)
/databricks/python/lib/python3.8/site-packages/pandas/core/generic.py:5494: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

Check if fare is above 3 but distance is equal to 0 then correct the distance according to the fare

In [0]:
dist_check = df.loc[(df.fare_amount > 3) & (df.distance == 0)]
dist_check.sort_values('fare_amount',ascending = False)
Out[44]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
1144706 2015-03-09 15:12:00 1273.31 2015-03-09 15:12:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 3.0 9.0 0.0 15.0
3723759 2015-03-10 09:48:00 698.16 2015-03-10 09:48:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2015.0 3.0 10.0 1.0 9.0
101885 2011-09-12 09:33:56 500.00 2011-09-12 09:33:56 -73.965961 40.640595 -73.965961 40.640595 1.0 0.0 2011.0 9.0 12.0 0.0 9.0
3770478 2013-01-21 03:57:00 300.25 2013-01-21 03:57:00 -73.990137 40.756872 -73.990137 40.756872 1.0 0.0 2013.0 1.0 21.0 0.0 3.0
2427679 2015-01-03 03:57:26 300.00 2015-01-03 03:57:26 -73.969688 40.592640 -73.969688 40.592640 1.0 0.0 2015.0 1.0 3.0 5.0 3.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4828186 2011-05-12 09:39:20 3.30 2011-05-12 09:39:20 -73.983423 40.744259 -73.983423 40.744259 1.0 0.0 2011.0 5.0 12.0 3.0 9.0
366224 2009-07-30 10:05:21 3.30 2009-07-30 10:05:21 -73.137393 41.366138 -73.137393 41.366138 1.0 0.0 2009.0 7.0 30.0 3.0 10.0
4125935 2011-08-02 16:57:00 3.30 2011-08-02 16:57:00 -73.982505 40.735358 -73.982505 40.735358 2.0 0.0 2011.0 8.0 2.0 1.0 16.0
3841998 2013-05-22 10:28:00 3.27 2013-05-22 10:28:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2013.0 5.0 22.0 2.0 10.0
4724757 2013-12-13 08:36:00 3.25 2013-12-13 08:36:00 0.000000 0.000000 0.000000 0.000000 1.0 0.0 2013.0 12.0 13.0 4.0 8.0

149777 rows × 14 columns

In [0]:
dist_check.distance = dist_check.apply(lambda x: ((x.distance - 2.5) / 1.56), axis = 1)
df.update(dist_check)
/databricks/python/lib/python3.8/site-packages/pandas/core/generic.py:5494: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

Check if distance is above 100 but fare is still lower than 100, then fare should be imputed with correct values

In [0]:
target_check = df.loc[(df.fare_amount < 100) & (df.distance > 100)]
target_check.sort_values(['distance','fare_amount'], ascending = False)
Out[46]:
key fare_amount pickup_datetime pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude passenger_count distance year month date day_of_week hour
1632032 2013-04-21 15:13:00 11.0 2013-04-21 15:13:00 -74.002510 40.734320 -70.183332 40.756540 1.0 199.922210 2013.0 4.0 21.0 6.0 15.0
2811044 2012-03-22 08:34:00 5.3 2012-03-22 08:34:00 -74.005112 40.741367 -77.816665 40.732262 1.0 199.544089 2012.0 3.0 22.0 3.0 8.0
1357154 2010-05-11 16:24:42 10.9 2010-05-11 16:24:42 -70.961200 42.505300 -73.967621 40.762009 1.0 196.489427 2010.0 5.0 11.0 1.0 16.0
4822280 2013-09-02 20:28:00 8.5 2013-09-02 20:28:00 -73.983740 40.734302 -77.716667 40.743877 1.0 195.421917 2013.0 9.0 2.0 0.0 20.0
1738206 2013-01-10 14:47:00 7.5 2013-01-10 14:47:00 -77.633333 40.784112 -73.967712 40.768627 2.0 191.793184 2013.0 1.0 10.0 3.0 14.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1926509 2011-03-11 21:45:31 49.8 2011-03-11 21:45:31 -73.963062 39.629601 -75.342620 40.643574 1.0 101.090299 2011.0 3.0 11.0 4.0 21.0
3286123 2011-03-28 15:43:49 49.8 2011-03-28 15:43:49 -75.329236 40.645135 -73.958087 39.627681 2.0 100.938013 2011.0 3.0 28.0 0.0 15.0
4507221 2014-09-16 04:51:00 11.5 2014-09-16 04:51:00 -73.980398 40.734552 -75.468602 41.670472 1.0 100.834201 2014.0 9.0 16.0 1.0 4.0
1937753 2015-05-08 13:51:46 20.5 2015-05-08 13:51:46 -72.063202 40.834679 -73.982452 40.772621 2.0 100.473338 2015.0 5.0 8.0 4.0 13.0
2234097 2011-03-27 21:34:02 49.8 2011-03-27 21:34:02 -75.343970 40.645350 -73.933972 39.671217 1.0 100.371781 2011.0 3.0 27.0 6.0 21.0

103 rows × 14 columns

In [0]:
target_check.fare_amount = target_check.apply(lambda x: ((x.distance * 1.56) + 2.5), axis = 1)
df.update(target_check)
/databricks/python/lib/python3.8/site-packages/pandas/core/generic.py:5494: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

After all corrections, correlation of distance and fare amount should be linear and fair

In [0]:
fig, ax = plt.subplots(1, 1, figsize=(16,10))
ax.scatter(x=df.distance, y=df.fare_amount, s=1.5)
ax.set_xlabel('Distance')
ax.set_ylabel('Fare')
ax.set_title('Fare Distribution with relation to distance')
Out[48]:
Text(0.5, 1.0, 'Fare Distribution with relation to distance')

Get the minimum and maximum range of the co-ordinates from the test dataset to plot the graph

In [0]:
bb = (min(test_df.pickup_longitude.min(), test_df.dropoff_longitude.min()), 
      max(test_df.pickup_longitude.max(), test_df.dropoff_longitude.max()), 
      min(test_df.pickup_latitude.min(), test_df.dropoff_latitude.min()), 
      max(test_df.pickup_latitude.max(), test_df.dropoff_latitude.max()))
bb
Out[49]: (-74.263242, -72.986532, 40.568973, 41.709555)

Function filter the range of pickup and dropoff locations from the training dataset

In [0]:
def filter_range(df, bb):
    return (df.pickup_longitude >= bb[0]) & (df.pickup_longitude <= bb[1]) & \
           (df.pickup_latitude >= bb[2]) & (df.pickup_latitude <= bb[3]) & \
           (df.dropoff_longitude >= bb[0]) & (df.dropoff_longitude <= bb[1]) & \
           (df.dropoff_latitude >= bb[2]) & (df.dropoff_latitude <= bb[3])

Plot of non-linear traffic in the city

In [0]:
fig, axs = plt.subplots(1, 2, figsize=(24,12))
idx = filter_range(df, (-74.1, -73.7, 40.6, 40.9))
axs[0].set_title('Pickup Locations')
axs[0].scatter(df[idx].pickup_longitude, df[idx].pickup_latitude, c='r', s=0.01, alpha=0.5)
axs[1].set_title('Dropoff Locations')
axs[1].scatter(df[idx].dropoff_longitude, df[idx].dropoff_latitude, c='b', s=0.01, alpha=0.5)
Out[51]:
<matplotlib.collections.PathCollection at 0x7ff5074a9280>

Correlation map of features

In [0]:
plt.figure(figsize=(15,12))
cor = df.corr()
sns.heatmap(cor, annot=True, cmap=plt.cm.CMRmap_r)
plt.show()

Prepare the test dataset

In [0]:
distance(test_df, 'pickup_latitude', 'pickup_longitude', 'dropoff_latitude', 'dropoff_longitude')
In [0]:
test_df['year'] = test_df.pickup_datetime.dt.year
test_df['month'] = test_df.pickup_datetime.dt.month
test_df['date'] = test_df.pickup_datetime.dt.day
test_df['day_of_week'] = test_df.pickup_datetime.dt.dayofweek
test_df['hour'] = test_df.pickup_datetime.dt.hour

Drop the insignificant variables

In [0]:
df.drop(['key','pickup_datetime'], axis = 1, inplace = True)
test_df.drop(['key','pickup_datetime'], axis = 1, inplace = True)

Convert pandas dataframe to spark dataframe for further modeling

In [0]:
train_df = ps.from_pandas(df)
train_df = train_df.to_spark()

Modeling¶

Linear Regression

In [0]:
feature_assembler = VectorAssembler(inputCols=['pickup_longitude', 'dropoff_longitude', 'passenger_count', 'distance', 'year', 'month', 'date'], outputCol="features")

lr = LinearRegression(labelCol="fare_amount")

pipeline = Pipeline(stages=[feature_assembler, lr])

train, test = train_df.randomSplit([0.75, 0.25])

lr_model = pipeline.fit(train)

predictions = lr_model.transform(test)

evaluator = RegressionEvaluator(labelCol= 'fare_amount', predictionCol= 'prediction')

print('RMSE:', evaluator.evaluate(predictions, {evaluator.metricName: "rmse"}))
print('R-squared:', evaluator.evaluate(predictions, {evaluator.metricName: "r2"}))
RMSE: 6.633929890520642 R-squared: 0.543772495001323

Decision Tree

In [0]:
feature_assembler = VectorAssembler(inputCols=['pickup_longitude', 'dropoff_longitude', 'passenger_count', 'distance', 'year', 'month', 'day_of_week', 'hour'], outputCol="features")

dt = DecisionTreeRegressor(labelCol="fare_amount")

pipeline = Pipeline(stages=[feature_assembler, dt])

train, test = train_df.randomSplit([0.75, 0.25])

dt_model = pipeline.fit(train)

predictions = dt_model.transform(test)

evaluator = RegressionEvaluator(labelCol= 'fare_amount', predictionCol= 'prediction')

print('RMSE:', evaluator.evaluate(predictions, {evaluator.metricName: "rmse"}))
print('R-squared:', evaluator.evaluate(predictions, {evaluator.metricName: "r2"}))
RMSE: 5.21864244430954 R-squared: 0.7163783358922924

Random Forest

In [0]:
feature_assembler = VectorAssembler(inputCols=['pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count', 'distance', 'year', 'month', 'date', 'hour'], outputCol="features")

rf = RandomForestRegressor(labelCol="fare_amount")

pipeline = Pipeline(stages=[feature_assembler, rf])

train, test = train_df.randomSplit([0.75, 0.25])

rf_model = pipeline.fit(train)

predictions = rf_model.transform(test)

evaluator = RegressionEvaluator(labelCol= 'fare_amount', predictionCol= 'prediction')

print('RMSE:', evaluator.evaluate(predictions, {evaluator.metricName: "rmse"}))
print('R-squared:', evaluator.evaluate(predictions, {evaluator.metricName: "r2"}))
RMSE: 5.272022521421218 R-squared: 0.7149434807349793

Gradient Boosting

In [0]:
feature_assembler = VectorAssembler(inputCols=['pickup_longitude', 'pickup_latitude', 'dropoff_longitude', 'dropoff_latitude', 'passenger_count', 'distance', 'year', 'month', 'date', 'day_of_week'], outputCol="features")

gbr = GBTRegressor(labelCol="fare_amount")

pipeline = Pipeline(stages=[feature_assembler, gbr])

train, test = train_df.randomSplit([0.75, 0.25])

gbr_model = pipeline.fit(train)

predictions = gbr_model.transform(test)

evaluator = RegressionEvaluator(labelCol= 'fare_amount', predictionCol= 'prediction')

print('RMSE:', evaluator.evaluate(predictions, {evaluator.metricName: "rmse"}))
print('R-squared:', evaluator.evaluate(predictions, {evaluator.metricName: "r2"}))
RMSE: 4.83464460555877 R-squared: 0.7590224066207748

Deployment¶

Create or load an Azure ML workspace

It will load a workspace or create a new one if it does not exist.

In [0]:
workspace_name = "fare-prediction"
workspace_location = "eastus"
resource_group = "NYC_Price_Prediction"
subscription_id = "75b2e7f9-9c16-4ece-9685-e7db922c1b62"   
authentication = InteractiveLoginAuthentication(tenant_id = "bc7e12a8-5234-4447-9371-44fc05a1d39c")

workspace = Workspace.create(name = workspace_name,
                             location = workspace_location,
                             resource_group = resource_group,
                             subscription_id = subscription_id,
                             auth = authentication,
                             exist_ok = True)

Train the best performance model on the dataset using MLflow to log metrics, parameters, artifacts and model

In [0]:
def fare_training(df, alpha, n_estimators):
    warnings.filterwarnings("ignore")
    if float(alpha) is None:
        alpha = 0.9
    else:
        alpha = float(alpha)
    
    if int(n_estimators) is None:
        n_estimators = 100
    else:
        n_estimators = int(n_estimators)
        
    np.random.seed(42)
    train, test = train_test_split(df)
    X_train = train.drop(["fare_amount"], axis=1)
    X_test = test.drop(["fare_amount"], axis=1)
    y_train = train[["fare_amount"]]
    y_test = test[["fare_amount"]]

    def evaluation_metrics(true, pred):
        return np.sqrt(mean_squared_error(true, pred)), mean_absolute_error(true, pred), r2_score(true, pred)
  
    with mlflow.start_run() as run:
        gbr = GradientBoostingRegressor(alpha=alpha, n_estimators = n_estimators, random_state = 42)
        gbr.fit(X_train, y_train)

        predictions = gbr.predict(X_test)

        (rmse, mae, r2) = evaluation_metrics(y_test, predictions)

        print("GradientBoostingRegressor(alpha=%f, n_estimators=%f):" % (alpha, n_estimators))
        print("  RMSE: %s" % rmse)
        print("  MAE: %s" % mae)
        print("  R2 Score: %s" % r2)

        mlflow.log_param("alpha", alpha)
        mlflow.log_param("n_estimators", n_estimators)
        
        mlflow.log_metric("rmse", rmse)
        mlflow.log_metric("mae", mae)
        mlflow.log_metric("r2", r2)
        
        mlflow.sklearn.log_model(gbr, "model")
        
        temp = int(random()*1000)
        path = "/dbfs/mlflow/fare_test/model-%f-%f-%f" % (alpha, n_estimators, temp)
        mlflow.sklearn.save_model(gbr, path)

        run_id = run.info.run_id
        print('Run ID: ', run_id)
        model_uri = "runs:/" + run_id + "/model"
        print('model_uri: ', model_uri)

    return run_id, model_uri
In [0]:
run_id, model_uri = fare_training(df, 0.01, 80)
GradientBoostingRegressor(alpha=0.010000, n_estimators=80.000000): RMSE: 4.476233007228593 MAE: 2.1169716019690727 R2 Score: 0.7922299745641197 Run ID: cbcad7aa4cb24cf9b66be21b47ba602c model_uri: runs:/cbcad7aa4cb24cf9b66be21b47ba602c/model

Create a container image for trained model to deploy in Azure Container Instances(ACI) using MLflow

Further as per the requirement container image can be deployed to ACI for staging which serve as REST endpoint and Azure Kubernetes Service(AKS) for production.

In [0]:
model_image, azure_model = mlflow.azureml.build_image(model_uri = model_uri, 
                                                      workspace = workspace,
                                                      model_name = "gbr-model",
                                                      image_name = "gbr-model",
                                                      description="Gradient Boosting Regressor for fare prediction",
                                                      synchronous=False)
model_image.wait_for_creation(show_output=True)
Registering model gbr-model 2022/08/17 16:03:04 INFO mlflow.azureml: Registered an Azure Model with name: `gbr-model` and version: `1` Creating image 2022/08/17 16:03:09 INFO mlflow.azureml: Building an Azure Container Image with name: `gbr-model` and version: `1`